0

次の Javascript を検討してください。

var previewImg = 'http://example.com/preview_img/hey.jpg';
var fullImg = previewImg.replace('preview','full');

の値は次のfullImgようになると思います。

http://example.com/full_img/hey.jpg

実際、それは... ある意味です。実行alert(fullImg);すると、予想される URL 文字列が表示されます。しかし、その変数を jQuery Fancyboxに渡すと、次のようになります。

jQuery.fancybox.open(fullImg);

次のように、何かが文字列に文字を追加します。

http://example.com/%EF%BF%BCfull_img/hey.jpg

これはどこ%EF%BF%BCから来たのですか?それは何ですか?そして最も重要なことは、どうすればそれを取り除くことができるでしょうか?

その他の手がかり: これは Drupal 7 サイトで、jQuery 1.5.1 を実行しています。サイトの他の場所でも同じ Fancybox スクリプトを問題なく使用しています。

4

1 に答える 1

3

%EF%BF%BC3つのURLエンコードされた文字のシーケンスです。

文字列に予期しない文字が含まれていないことは明らかです。これは、文字シーケンス%EF%BF%BCが表示されないためです。

これは実際にはUTF-8バイトオーダーマークシーケンスです。このシーケンスは通常、UTF-8でエンコードされたテキストファイルの先頭にあります。別のファイルからコピーして貼り付けたときに、コードに侵入した可能性があります。

それらを取り除く最も簡単な方法は、コピーされて貼り付けられたコードのビットを見つけ、問題の両側の文字を削除して、それらを再入力することです。エディターによっては、非表示の文字を削除するため、削除の動作がおかしくなる場合があります。

一部のテキストエディタとIDEには、非表示の文字を表示するオプションがあります。あなたの編集者がこれを持っているなら、それはあなたがそれらを削除することができるようにあなたが謎のキャラクターがどこにあるかを見るのを助けるかもしれません。

お役に立てば幸いです。

于 2013-03-19T20:59:06.463 に答える