3

コンテンツ HTML をロードする前に、特定のスクリプト タグ<script>を別のスクリプト タグに置き換える必要があります。<script>つまり、この JavaScript は広告であるため、ロードしたくありません。

これを交換 <script type='text/javascript' src='http://site.net/c/banner_s?tenant=AD&selection=5986&size=728x90&skin=bottom_middle&di=1'></script>

このため <script type='text/javascript' src='http://newsite...'></script>

それ以外の場合は、タグを削除してください。

これが私のコードですが、これによりすべてのスクリプトタグが削除され、特定のタグが必要です(前述)

function stripScripts(s) {
    var div = document.createElement('div');
    div.innerHTML = s;
    var scripts = div.getElementsByTagName('script');
    var i = scripts.length;
    while (i--) {
      scripts[i].parentNode.removeChild(scripts[i]);
    }
    return div.innerHTML;
  }

alert(
 stripScripts('<span><script type="text/javascript">alert(\'foo\');<\/script><\/span>')
);

前もって感謝します

4

2 に答える 2

2

あなたはどのくらいのURLを知っていますか?

すべてを知っていて変わらない場合:

var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
  if (scripts[i].src === "http://site.net/c/banner_s?tenant=AD&selection=5986&size=728x90&skin=bottom_middle&di=1") {
    srcipts[i].src = newSrc; // Your source here
    break;
  }
}

一部が変わらないことがわかっている場合:

var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
  if (scripts[i].src.indexOf("http://site.net/c/banner_s?...") === 0)  {
    srcipts[i].src = newSrc; // Your source here
    break;
  }
}

URL 全体が変更される可能性がある場合は、別の解決策 (ID、ページ上の配置など) を検討する必要があります。

于 2013-07-30T02:36:40.677 に答える