重新加载页面,直到HTML包含给定的字符串

时间:2013-10-08 15:08:28

标签: javascript html bookmarklet

我正试图找出一种方法来自动重新加载浏览器的页面,直到页面的HTML代码中出现一定数量的字符。即,player.swf"。这是一个直接和简单的解决方案来更新页面,直到流媒体Flash播放器出现在我经常访问的网站上。

我是JavaScript和浏览器插件编程中的总菜鸟,但我想我看到人们制作迷你游戏,比如用小船拍摄页面元素,首先在当前页面的地址栏中输入一些代码,然后我怀疑是JavaScript(但如果我错了,请纠正我)。

有没有办法创建一行代码,可以放在地址栏中并按照描述执行?我希望这种方式可以在任何支持从地址栏执行代码的浏览器中运行。

非常优选不涉及浏览器插件和扩展程序(~monkeys)的解决方案。

2 个答案:

答案 0 :(得分:1)

var i = 0, tmr = setInterval(function(re){
  $.ajax({url: document.location.href}).done(function(html){
    document.title = (++i) + ' checks';
    if ( html.match(re) ){ clearInterval(tmr); alert('found it'); document.location.reload(); }
  });
}, 60*1000, /player\.swf/i);

它不会完全重新加载页面。它使用AJAX读取页面并查找感兴趣的文本。如果找到,则提醒用户,然后进行一次真正的重新加载。在文档标题中跟踪测试数量(在页面选项卡中可见)。每60秒进行一次测试;适应你的快乐。

要制作书签,请点击“bookmarklet构建器”并选择收藏夹。

代码很可能在感兴趣的网站上作为普通的书签工作。如果没有,您可能需要包含jQuery。使用此jQuery bookmarklet构建器:http://benalman.com/code/test/jquery-run-code-bookmarklet/

对于那些说它不能作为书签进行操作并且在重新加载页面方面过于字面思考的人:它仍然可以仅通过重新加载来完成。小书签可以先打开一个新窗口,然后将代码注入其中,这将重新加载父窗口并检查其innerHTML。这当然会比我提供的更复杂。

答案 1 :(得分:-1)

您可能希望创建一个浏览器插件或tampermonkey / greasemonkey脚本来完成此“自动”部分。

如果没有浏览器插件,您当然可以在地址栏中使用JavaScript,或者在调用时使用JavaScript“bookmarklet”。

但是,您需要单击书签,或者为每次刷新页面输入一次JavaScript代码。每次刷新页面时都会重新加载JavaScript ..因此,保留查找“player.swf”的javascript代码的唯一方法是使用浏览器插件或模拟插件的内容,例如tampermonkey / greasemonkey。

插件或tampermonkey / greasemonkey都可以在页面加载时自动运行javascript,只要页面的URL匹配为该特定脚本定义的任何内容。例如,这是我在大约15秒内编写的一个tampermonkey脚本,只要它打开,它就会在我访问stackoverflow.com页面时运行:

// ==UserScript==
// @name       Awesome website landing notifier
// @version    0.1
// @description  Let's you know when you're on a stack overflow webpage.
// @match      http://stackoverflow.com/*
// @copyright  2013+, Russell Dempsey aka SgtPooki
// ==/UserScript==


alert('You\'re on a stackoverflow page!');