1

ajax JSONP を介して Google ロード フィード API によって wordpress rss フィードを消費し、返された json オブジェクトを反復処理してコンテンツを挿入する https プロトコル上のサイトがあります。

問題は、コンテンツ ノードに、ポスターが挿入した画像など、含めたい html があることです。

  "Title":"post title",
  "Content":"<p><img src='http://theothersite.com'/> this is an example post</p>"

each() を使用して json を反復処理すると、コンテンツ html が追加され、ブラウザーに安全でないコンテンツの警告がスローされます。これは、イメージ src が http プロトコルであるためです。

 $.each(json.responseData.feed.entries, function(arrayID, News) {
 for(var i = 0; i < News.categories.length; i++)
 {
  html = '<li class="post news"><h3><a target="_blank" href="'+News.link+'">'+News.title+'</a></h3>';
  // HERES WHERE ATTENTION NEEDED
  html +='<div class="excerpt">'+News.content+'</div></li><hr>';

 $("#newsList ul").append(html);

他のすべての文字列データを保持しながら、src のノード コンテンツの値を解析し、すべての src をプロトコルとして https を持つ新しい src に置き換える方法がわかりません

私は一致を試みました.srcを変数に入れるためにうまくいきましたが、残りの文字列を取りませんでした.

  var iMatches = News.content.match(/src=\"(.+?)\"/igm);  //alert(iMatches);
  if (iMatches) { 
    News.content.replace(/src=\"http:(.+?)\"/igm, /src=\"https:(.+?)\"/igm);}

私も replace('http:', 'https:') として置き換えてみましたが、どちらもうまくいきませんでした

いつものように、助けていただければ幸いです

4

1 に答える 1

1

このString.replaceメソッドは元の文字列を変更せず、代わりに新しい文字列を返します。それを念頭に置いて、次を使用する必要があります。

News.content = News.content.replace(...);

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace

于 2013-03-20T18:32:11.880 に答える