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

sci*_*dus 14 javascript bookmarklet

基本上我正在努力

  1. 导航到网页
  2. 等待该网页加载
  3. 在该页面上执行JS函数/警报/任何内容

所有这些都来自一个小书签.这可能吗?我似乎无法为我工作,但这可能是因为我自己的个人失败.

Reb*_*cca 8

我发现这样做的最简单的方法是不需要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
  }
}
Run Code Online (Sandbox Code Playgroud)


scu*_*ffe 4

您想要安装Firefox 的Greasemonkey扩展。(或用于 IE 的gm4ie ,或用于Chrome 的Greasemetal ( PersonalizedWeb也可​​以以更简单的方式用于 Chrome),用于 Safari 的Greasekit,或用于Opera 的user.js )

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

否则,您将需要在每个页面加载时单击小书签才能运行脚本。

  • 那么 Greasemonkey (或 $browser 中的等效项)是唯一的解决方案吗?我的目标是制作一个可以与其他人共享的书签,而不是在每种情况下都需要一个附加组件。对于某些情况,我试图解决的问题是我学校的网站。网页设计者认为,让网站上的所有链接都只是 JS 链接,通过 PHP 和 AJAX 的某种神秘组合来更新网页,这将是一个绝妙的主意。不幸的是,由于他们这样做的方式,目前无法链接到您班级的作业页面。 (2认同)
  • 相反,您必须说“转到网站,然后单击此处,然后单击此处,然后单击此处。” 我的希望是制作一个书签,它可以加载网站,一旦页面加载,就运行检索所需页面所需的 JS 链接。 (2认同)