如何使用javascript在网页中搜索字符串?

如何使用javascript在网页中搜索字符串?,javascript,browser,greasemonkey,Javascript,Browser,Greasemonkey,我正在制作一个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

我正在制作一个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";
}
/==UserScript==
//@name No 009音响系统
//@version 1.0
//@名称空间http://www.cakeman.biz/
//@description在即将观看带有009音响系统音频的youtube视频时警告用户
//@include http://*/*
//@版权所有2011+,扎克·马洛塔 //==/UserScript== 变量结果,搜索项='somerandomsearchterm'; var str=document.URL; var url\u check=str.search(搜索词); 如果(url\u检查!==-1){ var结果=搜索项; 警报(str); window.location=”http://www.web.site"; }

脚本运行时不会发生任何事情。我做错了什么?

对于某些特定函数,您必须在Greasemonkey用户脚本中使用
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";

有关元块的更多信息,请参阅:

您注意到正在执行区分大小写的搜索吗?在查找小写时,如果只有一个字母是大写字母,则不会触发该命令;反之亦然,如果您希望不区分大小写,则需要一个RegExp作为“搜索词”

另一件事是,元数据块中不需要

,因为这样include就不起作用了,否则页面需要在地址中有

才能匹配和执行


额外:这个!==应该可以正常工作,但不需要,在本例中为a!=可以,强烈建议您不要使用unsafeWindow。

单击此处查看您的问题列表,以便按照Rob的建议接受这些问题。但这些答案都不管用。hahaIf“这些答案都不起作用”,然后返回并评论答案,编辑问题——解释为什么答案对你不起作用。答案适用于上述问题;当它不是你想要的东西时,由你来澄清。它不起作用。您确定它是
url\u check!=-1
而不是
url\u检查!==-1
?是。通过包含
/@include*
,您确定您的GM脚本在页面上处于活动状态吗?用更具体的选择器替换
*
。请注意,您的脚本也可以缩短为:
/==UserScript==//@include*somerandomsearchterm*/=/UserScript==unsafeWindow.location.href=”http://www.web.site";缩短的东西不起作用。我会把我的meta添加到脚本中。有什么方法可以联系你吗?是的,在打开聊天室,邀请我。什么东西确实不起作用?您收到了什么错误消息?