Ieri sera, mi sono davvero annoiato e ho pensato ad una piccola idea per una piccola sceneggiatura. Fondamentalmente stavo pensando a quante funzioni built-in PHP ha rispetto a JavaScript e poi ho capito che davvero non so quante funzioni JavaScript abbia effettivamente. Ho pensato di scrivere una sceneggiatura che guardasse attraverso l'oggetto della finestra incluso ogni oggetto all'interno dell'oggetto e così via. Ho scritto la sceneggiatura e ha funzionato (l'ho provata su un oggetto più piccolo).In looping di tutti gli elementi nell'oggetto della finestra
Tuttavia, il mio problema è che JavaScript non mi consentirà di eseguire il loop dell'intero oggetto Windows.
ho provato:
for (var key in window) {
console.log(key);
}
Ho anche provato:
var a = Object.create(window);
for (var key in a) {
console.log(key);
}
Entrambi i frammenti di codice mi danno:
top
window
location
external
chrome
Intl
v8Intl
document
script1374438467163
$pick
$try
IFrame
Elements
OverText
IframeShim
Mask
Clientcide
dbug
value
debugCookie
StyleWriter
StickyWin
TabSwapper
Collapsible
Collapsable
Drag
Cookie
Accordion
Asset
Spinner
MultipleOpenAccordion
MooTools
typeOf
instanceOf
Type
Hash
Native
$A
$arguments
$chk
$clear
$defined
$each
$empty
$extend
$H
$merge
$lambda
$mixin
$random
$splat
$time
$type
$unlink
Browser
$constructor
Window
$family
Document
$exec
Slick
Element
uniqueNumber
$
getDocument
getWindow
Selectors
$$
addListener
removeListener
retrieve
store
eliminate
Class
Chain
Events
Options
Request
DOMEvent
Event
addEvent
removeEvent
addEvents
removeEvents
fireEvent
cloneEvents
Fx
Swiff
getSize
getScroll
getScrollSize
getPosition
getCoordinates
getHeight
getWidth
getScrollTop
getScrollLeft
getScrollHeight
getScrollWidth
getTop
getLeft
setCNETAssetBaseHref
Table
BehaviorAPI
Behavior
Color
$RGB
$HSB
$HEX
Keyboard
Locale
URI
CodeMirror
JSHINT
_
emmet
Sidebar
keyMods
Layout
MooShellActions
Base64
Dropdown
editorsModified
Track
update_resource_input
remove_resource
prepareToSubmit
submit_external_resource
change_default_input_value
validate
warn
disallowedPlatforms
default_code_mirror_options
MooShellEditor
MooShellSettings
disqus_developer
disqus_identifier
disqus_title
csspath
jspath
imgpath
mediapath
codemirrorpath
panel_html
panel_css
panel_js
makefavouritepath
example_server
username
static_hash
csrfToken
mooshell
preload_resources
DP
resources
default_text
add_external_resource_url
_gaq
TowTruckConfig_enableAnalytics
TowTruckConfig_cloneClicks
TowTruck
_gat
gaGlobal
style_html
css_beautify
js_beautify
Beautifier
language
Heyoffline
page_test
i
a
key
webkitNotifications
localStorage
sessionStorage
applicationCache
indexedDB
webkitIndexedDB
webkitStorageInfo
CSS
performance
console
devicePixelRatio
styleMedia
parent
opener
frames
self
defaultstatus
defaultStatus
status
name
length
closed
pageYOffset
pageXOffset
scrollY
scrollX
screenTop
screenLeft
screenY
screenX
innerWidth
innerHeight
outerWidth
outerHeight
offscreenBuffering
frameElement
crypto
clientInformation
navigator
toolbar
statusbar
scrollbars
personalbar
menubar
locationbar
history
screen
postMessage
close
blur
focus
ondeviceorientation
ontransitionend
onwebkittransitionend
onwebkitanimationstart
onwebkitanimationiteration
onwebkitanimationend
onsearch
onreset
onwaiting
onvolumechange
onunload
ontimeupdate
onsuspend
onsubmit
onstorage
onstalled
onselect
onseeking
onseeked
onscroll
onresize
onratechange
onprogress
onpopstate
onplaying
onplay
onpause
onpageshow
onpagehide
ononline
onoffline
onmousewheel
onmouseup
onmouseover
onmouseout
onmousemove
onmousedown
onmessage
onloadstart
onloadedmetadata
onloadeddata
onload
onkeyup
onkeypress
onkeydown
oninvalid
oninput
onhashchange
onfocus
onerror
onended
onemptied
ondurationchange
ondrop
ondragstart
ondragover
ondragleave
ondragenter
ondragend
ondrag
ondblclick
oncontextmenu
onclick
onchange
oncanplaythrough
oncanplay
onblur
onbeforeunload
onabort
getSelection
print
stop
open
showModalDialog
alert
confirm
prompt
find
scrollBy
scrollTo
scroll
moveBy
moveTo
resizeBy
resizeTo
matchMedia
setTimeout
clearTimeout
setInterval
clearInterval
requestAnimationFrame
cancelAnimationFrame
webkitRequestAnimationFrame
webkitCancelAnimationFrame
webkitCancelRequestAnimationFrame
atob
btoa
addEventListener
removeEventListener
captureEvents
releaseEvents
getComputedStyle
getMatchedCSSRules
webkitConvertPointFromPageToNode
webkitConvertPointFromNodeToPage
dispatchEvent
webkitRequestFileSystem
webkitResolveLocalFileSystemURL
openDatabase
TEMPORARY
PERSISTENT
Tuttavia, so che ci sono molte più proprietà all'interno dell'oggetto Windows. Come tutte le funzioni SVG e le funzioni HTML. Perché JavaScript ignora molte proprietà nell'oggetto?
Alcune proprietà sono ereditate e alcune non sono enumerabili. Per ottenere proprietà non enumerabili, dovresti usare 'Object.getOwnPropertyNames()' su 'window' e su ogni oggetto nella sua catena di prototipi. Per ottenere gli oggetti ereditati dalla catena del prototipo, devi usare 'Object.getPrototypeOf()'. http://jsfiddle.net/FtVXN/ –
@CrazyTrain Grazie, puoi aggiungerlo come risposta se lo desideri. – Shawn31313