相关疑难解决方法(0)

javascript domready?

我知道我可以使用不同的框架(如prototype或jquery)将函数附加到window.onload,但这不是我正在寻找的.

我需要像.readyState这样的东西,这样我就可以这样做:

if(document.isReady){
  var id = document.getElem ...
}
Run Code Online (Sandbox Code Playgroud)

除了使用框架的功能之外,还有其他方法吗?

javascript javascript-events

51
推荐指数
7
解决办法
10万
查看次数

UserScripts&Greasemonkey:调用网站的JavaScript函数

我正在为Firefox和Chrome创建一个UserScript扩展,我正在尝试使用网站JavaScript中的一些代码,例如:

function: myFunction(){
    return  Grooveshark.playNextSong();
}
Run Code Online (Sandbox Code Playgroud)

问题是当我测试这段代码时, Grooveshark是一个空引用.

我知道还有其他人做过:

见BetterGrooveshark

但我不知道为什么我的简单扩展无法调用Grooveshark的JavaScript函数.

我是否需要将我的脚本"附加"到文档中才能使其正常工作?: document.document.body.appendChild(script);

不是Greasemonkey已经注入我的扩展JavaScript吗?请允许有人为我澄清这一点.

谢谢.

javascript greasemonkey userscripts google-chrome-extension

33
推荐指数
2
解决办法
2万
查看次数

我需要一个通用的javascript“等待功能可用”

我发现了这个很棒的代码片段让我的用户脚本等待其他脚本加载,它向我展示了如何在调用函数之前等待函数可用。

目前我的脚本中有这个本地代码,我已经把它放在一起对我有用

waitForFnc();

function waitForFnc() {
    if (typeof Portal.Management_Init == "undefined") {
        window.setTimeout(waitForFnc, 50);
    }
    else {
        Portal.Management_Init();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我想编写一个通用版本的“waitForFnc”,因为我需要在几个地方做同样的事情。就像是

waitForFnc(Portal.Management_Init);

function waitForFnc(fnc) {
    if (typeof fnc == "undefined") {
        window.setTimeout(waitForFnc(fnc), 50);
    }
    else {
       fnc();
    }
}
Run Code Online (Sandbox Code Playgroud)

我在其中传递可用时调用的函数的名称。上面的代码不起作用,但我不确定如何解决它。

问候保罗

javascript closures

5
推荐指数
1
解决办法
1498
查看次数