WordPressショートコードにPHPを使用してJavaScriptを出力しています。私のphpは次のようになります:
$output="<script type='text/javascript' >
jQuery(document).ready(function() {
jQuery('#photo{$photo_id}').on('click', function(){
Shadowbox.open({
content: '<div id=\'popup{$photo_id}\' class=\'popup\'>{$content}</div>',
player: 'html',
height: 500,
width: 1200,
handleOversize: 'drag'
});
});
});
</script>";
return $output;
ただし、出力には、Shadowbox の content 引数の最初の引用符の後に改行があります。
このような:
jQuery(document).ready(function() {
jQuery('#stylistphoto1').on('click', function(){
Shadowbox.open({
content: '
<div> id=\'popup1\' class=\'popup\'> . . .
これにより、「未終了の文字列リテラル」エラーが発生し、スクリプトが失敗します。
何が起こっている?
注: これは BOM なしの UTF-8 でエンコードされています。b. これはある時点で機能しました。c. content 引数として空の文字列を渡すと問題なく動作しますが、もちろん、これはまったく役に立ちません。