2

私はJQueryで小さなRSSリーダーを書きました。最初は記事のタイトルが表示された画面があります。タイトルをクリックすると、その記事のコンテンツが読み込まれます。問題は、記事のコンテンツを置き換え、画面全体を広告で埋めるGoogle広告スクリプトが含まれていることです。

次のスクリプトは、私が置き換えたり無視したりするものです。

<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, " ");
}

しかし、これは機能しません。柔軟性もないと思います(機能する場合)。スクリプトで何かが変更されると、アプリケーションは再びアドバタイズメントでスタックします。RSSフィードまたはより柔軟な置換スクリプトからコンテンツをフェッチするときに、このスクリプトを完全に無視する方法はありますか?

どんな助けでもありがたいです、

ありがとう!

4

1 に答える 1

1

正規表現を使用してxml/htmlを解析することはあまり賢明ではありません。
domパーサーを使用します(jqueryは美しいものです...ヒントのヒント):

var rssContentString = '<rss version='2.0'>...',
    xmlDoc = $.parseXml(rssContentString),
    $xml = $(xmlDoc),
    helper = $('<div />'),
    result;


result = helper
    .append(
        $xml
            .find('script')
                .remove()
                .end()
    )
    .text();

UPDATE
新しいコメントに基づいて、次のようなRSSコンテンツを取得します。

content:$.trim($(v).find("content").text())

この式を次のように変更できます。

content:$.trim($(v).find("content").find('script').remove().end().text())
于 2012-12-29T21:41:43.703 に答える