加载页面并在其上执行JS ...来自JS bookmarklet?

时间:2010-02-15 17:28:03

标签: javascript bookmarklet

基本上我正在尝试

  1. 导航至网页
  2. 等待该网页加载
  3. 在该页面上执行JS功能/警报/任何内容
  4. 所有来自单个书签。这可能吗?我似乎无法为我工作,但这可能是因为我个人在这里的失败。

4 个答案:

答案 0 :(得分:7)

我发现这样做的最简单的方法是不需要Greasemonkey或类似的东西就是编写你的JS,以便它检查它是否在适当的页面上,如果不是,就去那里。如果它在页面上,那么它执行JS / alert / whatever。您必须使用两次书签,但您只需要一个书签,用户可能仍然可以更快/更轻松地进行点击/恭喜他或她自己。所以代码看起来像这样:

if(this.document.location.href != "[url]") { //Are we on the page yet? 
  this.document.location.href = "[url]"; // If not, go there
}
else {
  if (document.readyState === "complete") { //Wait for the page to finish loading
   // DO STUFF
  }
}

答案 1 :(得分:3)

您想为Firefox安装Greasemonkey扩展程序。 (或gm4ie用于IE,或greasemetal用于Chrome(PersonalizedWeb也适用于Chrome的更简单方式),greasekit用于Safari,或user.js用于歌剧)

Greasemonkey让你做到这一点......在每个页面加载时自动运行一个脚本(你可以选择它加载的页面/站点)

否则,您需要在每个页面加载时单击您的书签,以便运行您的脚本。

答案 2 :(得分:1)

鉴于没有更好的解决方案,我认为我会抛弃Opera本身支持用户脚本在每个页面加载时运行。从那里,您可以让脚本检查当前的URL,并在适当的页面上运行。

See here for documentation

答案 3 :(得分:0)

另一种选择是调用window.open(...),并使用window对象来操纵窗口。也可以通过这种方式浏览多个页面。