在正常的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