在正常的JS,一個可以遍歷window對象 -迭代的「窗口」全局
<html><head><script>
function one(){
}
function two(){
for (var i in window) {
if (i=='one') {
alert(i);//.......................shows 'one'
}
}
}
two();
</script></head></html>
但在Greasemonkey的的「窗口」不保持功能,即使你在通用腳本定義的函數:
// ==UserScript==
// @name Page 3
// @namespace http://xxxxxxxxxxxxxxxx
// @include http://xxxxxxxxx.net/3.html
// ==/UserScript==
//
function one(){
}
function two(){
for (var i in window) {
if (i=='one') {
alert(i);//.........shows nothing, only iterates native window props
}
}
}
two();
是的,我想迭代我自己的函數,而不是unsafeWindow中的函數。請注意,以下的作品,我不想做的事:
window.one=function one(){
}
function two(){
for (var i in window) {
if (i=='one') {
alert(i);//...........ta-da! 'one'
}
}
}
two();
那麼,什麼是這個全球性空間的名字,我怎麼重複它,究竟是什麼異常的意圖和最佳做法?謝謝。
更新:「這個」不訪問功能或者 -
// ==UserScript==
// @name Page 3
// @namespace http://xxxxxxx.net
// @include http://xxxx.com/*
// ==/UserScript==
function do_fixes(){
var s='';
for (var i in this) {
if (i=='do_fixes') {
alert('yes');
}
}
if (window!=this) {
alert('window!=this');
}
}
do_fixes();
alert('this script ran!');
感謝您的回覆,但「此」不包含這些功能 - 我已更新我的帖子以顯示該功能。 – 2011-12-29 17:19:54