Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换/忽略字符串中的JavaScript_Javascript_Jquery_Rss - Fatal编程技术网

替换/忽略字符串中的JavaScript

替换/忽略字符串中的JavaScript,javascript,jquery,rss,Javascript,Jquery,Rss,我用JQuery编写了一个小型RSS阅读器。首先,屏幕上显示了文章的标题,当点击标题时,我会加载该文章的内容。问题是,它包含一些谷歌广告脚本,将取代文章的内容,并用广告填满整个屏幕 以下脚本是我要替换或忽略的脚本: <script type="text/javascript"><!-- google_ad_client = "ca-pub-8356817984200457"; /* ijsselmondenieuws.nl */ google_ad_slot = "906117

我用JQuery编写了一个小型RSS阅读器。首先,屏幕上显示了文章的标题,当点击标题时,我会加载该文章的内容。问题是,它包含一些谷歌广告脚本,将取代文章的内容,并用广告填满整个屏幕

以下脚本是我要替换或忽略的脚本:

<script type="text/javascript"><!--
google_ad_client = "ca-pub-8356817984200457";
/* ijsselmondenieuws.nl */
google_ad_slot = "9061178822";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>


因此,我编写了一个方法,通过简单的替换来删除脚本:

 var replaceScript='<script type="text/javascript"><!--\n' +
'google_ad_client = "ca-pub-8356817984200457";\n' +
'/* ijsselmondenieuws.nl */\n' +
'google_ad_slot = "9061178822";\n' +
'google_ad_width = 468;\n' +
'google_ad_height = 60;\n' +
'//-->\n' +
'</script>\n' +
'<script type="text/javascript"\n' +
'src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\n' +
'</script>';



function removeADS(ads) {
    removeAD = ads.replace(replaceScript, " ");
}
var replaceScript='\n'+
“\n”+
“\n”+
'';
功能移除(ads){
removeAD=ads.replace(replaceScript,“”);
}
但这不起作用,我认为它也不灵活(如果可行的话)。当脚本中发生更改时,应用程序将再次陷入广告中。在从RSS提要或更灵活的替换脚本获取内容时,是否有某种方法可以完全忽略此脚本

感谢您的帮助


谢谢

用正则表达式解析xml/html不是很明智。
使用dom解析器(jquery是一个漂亮的解析器…提示):

可以将此表达式修改为以下内容:

content:$.trim($(v).find("content").find('script').remove().end().text())

使用dom解析器!不使用正则表达式full解析xmlstop@gion_13:这是否适用于渲染的dom(或已执行的脚本之类的部分?)。他要替换的字符串部分必须存在以进行替换。如果存在,javascript已经或将被执行。我不知道如何在客户端替换它。如果您能以某种方式将此解决方案添加为注释,我将不胜感激。我通过以下行获取内容:
content:$.trim($(v).find(“content”).text()
,内容还包含脚本。没有其他方法可以忽略/替换脚本而不使用dom解析器吗?我想接受你的答案,但我仍然没有让它工作。我试过你最新的答案,但不知怎么的,它仍然在显示广告。我不太确定如何使用你答案的第一部分,我的JS知识是基本的。我感谢你的帮助!我不知道它为什么不起作用。请举例说明您在JSFIDLE上的工作或提供rss内容。这是我正在获取的rss内容:
http://www.ijsselmondenieuws.nl/feed/
我正在获取
标记之间的内容。我添加了一个id为reclame的div,以便更容易使用这个regex
/.*/gi
进行筛选,但不知何故它仍在切换到另一个页面。
content:$.trim($(v).find("content").text())
content:$.trim($(v).find("content").find('script').remove().end().text())