如何用javascript在网页中搜索字符串
How do you search for a string in a webpage with javascript?
我正在制作一个javascript greasemonkey脚本,当它在网页中找到某个字符串时重定向您。下面是我的代码:
// ==UserScript==<br>
// @name No 009 Sound System!<br>
// @version 1.0<br>
// @namespace http://www.cakeman.biz/<br>
// @description Warn user when about to view a youtube video with 009 Sound System audio<br>
// @include http://*/*<br>
// @copyright 2011+, Zack Marotta
// ==/UserScript==
var result, search_term = 'somerandomsearchterm';
var str = document.URL;
var url_check = str.search(search_term);
if (url_check !== -1) {
var result = search_term;
alert(str);
window.location = "http://www.web.site";
}
脚本运行时什么也没有发生。我做错了什么?
对于某些特定的函数,您必须在Greasemonkey UserScript中使用unsafeWindow
而不是window
。如果你想让你的脚本在GreaseMonkey和其他位置工作,使用这个:
var win = typeof unsafeWindow != "undefined" ? unsafeWindow : window;
原来的答案让我退缩了,因为那似乎不是你的问题。最有可能的是,您忘记将// @include
添加到元块中。
如果您的脚本必须使用GreaseMonkey重定向某个固定页面,您还可以将脚本缩短为:
// ==UserScript==
// @name Redirect
// @include *i-am-afraid-of-this-word*
// ==/UserScript==
location.href = "http://www.google.com/search?q=need-help-getting-courage";
有关元块的更多信息,请参见:http://wiki.greasespot.net/Metadata_block
您注意到正在执行区分大小写的搜索吗?当查找小写字母时,如果只有一个字母是大写,则不会触发,反之亦然,如果您想要大小写不敏感,则需要RegExp作为"搜索项"。
另一件事是,您不需要元数据块中的<br>
,因为那时包含是不工作的,否则页面将需要在地址中有<br>
来匹配和执行。
额外:!==应该可以正常工作,但不是必需的,在这种情况下,一个!=就可以了,并且强烈建议您不要使用unsafeWindow
相关文章:
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 在javascript中搜索字符串
- td:包含变量中的搜索字符串
- 在元素中搜索字符串,然后将其放入条件语句中
- Javascript正则表达式,用于验证接收到的MySQL全文搜索的搜索字符串
- 在对象数组中搜索字符串
- 在HTML中搜索字符串并返回True的Javascript条件
- 使用Tilde(~)和search()搜索字符串
- 在DOM中搜索字符串时不区分大小写
- 如何以编程方式输入搜索字符串并触发谷歌地图API的places_changed
- 在 Enter 上,在 db 中搜索字符串
- 使用引导表插件,如何在首次加载时设置搜索字符串
- 如何在 Firefox 25 中获取查找栏的最后一个搜索字符串
- JavaScript 搜索字符串包含
- 如何确定搜索字符串是否被较大字符串中的锚标记包装 - javascript 正则表达式
- 使用 forEach 在多个数组中搜索字符串
- 如何编写 angularjs 过滤器来搜索字符串片段/字符串序列
- Javascript:搜索字符串时数组中的多个表达式
- 如何使用 javascript 在
中搜索字符串,然后添加到该 id - 谷歌表格循环搜索字符串并清除相邻单元格