0

そのため、テンプレートにUnicodeが挿入されているため、iframesrcが失敗します。

文字列http://sand-dynamic.adpinr.com/social_stream/p_unit/1204042はjavascript変数に含まれているように見えますが、次のようになります。

http://sand-dynamic.adpinr.com%e2%80%ac/social_stream/p_unit/1204042

どうやらですが、理由はわかりません。私は変数でこれをやろうとしました:

obj.URL = unescape(JSON.parse('"' + TL.getURL() + '/social_stream/p_unit/' + obj.id + '"');

しかし、それは役に立たなかったようです。私のテンプレートはそれを次のように呼んでいます

<iframe frameborder="0" width="<%= width %>" height="<%= height %>" marginheight="0" marginwidth="0" target="_blank" scrolling="no" src="<%= URL %>"></iframe>

その余分なユニコードを取り除く方法について何か考えはありますか?それは私がブラウザでURLに行くのを妨げており、代わりにそれをグーグルで検索します。そもそもUnicodeがどのようにそこに到達しているかわからないので、余分なUnicodeを動的に削除することをお勧めします。

4

1 に答える 1

0

%e2%80%acU+202Cです。どういうわけか、その文字はあなたのURL変数に入りました。その文字は表示されないため、変数の値を出力するときには表示されませんが、文字列がURLエンコードされている場合は表示されます。その文字を削除するには、文字列を編集する必要があります。その価値がどこから来ているのかわからないので、これ以上の情報を提供することはできません。

非ASCII範囲文字を本当に削除したい場合は、いつでも次のようにすることができます。

var url = ...
var strippedURL = '';
for (var i = 0, l = url.length; i < l; i++){
  if (url.charCodeAt(i) < 256) strippedURL += url[i];
}
return strippedURL;

しかし、それはこれを解決するための良い方法ではありません。その文字がどこから来ているのかわからない場合、それは修正が必要なコードのどこかにバグがあることを示しています。

于 2013-02-25T16:55:37.267 に答える