ホームページ >バックエンド開発 >PHPチュートリアル >phpcms で js を使用するときに遭遇する困難に誰も注意を払っていないと思われます。

phpcms で js を使用するときに遭遇する困難に誰も注意を払っていないと思われます。

WBOY
WBOYオリジナル
2016-06-23 13:40:521022ブラウズ

例: $('#moveImage').bind('dblclick',function(){
window.location.href='{APP_PATH}index.php?m=special&c=index&a=special&siteid={$siteid}' ;
})
は中括弧で記述する必要があります。これは間違いなく機能せず、正しく解析されません
ただし、エスケープする必要があり、試しても機能しません
たとえば、
$(' #moveImage').bind('dblclick', function(){
window.location.href='{APP_PATH}index.php?m=special&c=index&a=special&siteid={$siteid}';

})
質問は、phpcms でタグ シンボルを記述する方法は本当にないのでしょうか? フォーラム全体にこれに関する投稿がないため、私がこの問題に最初に気づいたのだと思います。

ディスカッションに返信(解決策)

それはあなたであるべきです 文章が仕様に準拠していません、さもなければあなただけが問題に遭遇することはあり得ません

1. APP_PATH とは何ですか?

定数の場合、このように文字列に記述するのは間違いです。

定数でない場合は、文字列を値に置き換える場所が必要です。次に問題は、中括弧があるべきかどうかです。つまり、置換する際に中括弧も一緒に置換するかどうかは、コードに依存します。 2. jsでは、特別な必要がない限り、外部パスを記述する必要はありません。絶対パスである必要があります。そうでない場合は、サブディレクトリとして解釈されます
そして、APP_PATH は明らかにプロジェクト ディレクトリです
3. ブラウザで Web ページのソース ファイルを表示して、この部分がどうなったかを確認できます


, 今起きたばかりでちょっと混乱していて、何を言っているのかよくわかりません。

PHPCMS のテンプレート エンジンは比較的シンプルで効率的です。つまり、閉じ中括弧が同じ行にあり、間にスペースがない限り (loop、for、if、pc、php、および関数の呼び出しやスペースの許可など)、それらはテンプレート エンジンによってブロックされます(定数、変数、自動インクリメント、自動デクリメントなど)。
詳細については、テンプレート エンジン phpcms/libs/classes/template_cache.class.php の template_parse() メソッドを参照してください。

そして、あなたの最後の文を見て、テンプレートファイルのスクリプト内のテンプレートタグを呼び出すことが可能であることを一時的に理解しました、そして、テンプレートエンジンは呼び出し位置を判断しないため、それが可能であることを正確に伝えることができますタグの。

<script type="text/javascript">alert({APP_PATH});</script>

サイトアドレスがポップアップします

したがって、逆に、テンプレートファイル内にあれば、スクリプト内でテンプレートタグを呼び出すことができます。スクリプトでは、エスケープすることによってのみ達成できるようです。
もちろん、js ファイル内で任意に呼び出した場合は、主はPHPCMS フォーラムで質問しましたが、ここに投稿するのを諦めました、Xiba = =。 2階で返事、はい~! ! ! ... ={$siteid}';
})

はは

見てください、私は何も言いません


<script type="text/javascript">alert("{APP_PATH}");</script>

これはうまくいきますか?


PHPCMS フォーラムに投稿しましたが、ここに投稿するのをやめました、Gexiba==。 2階で返事、はい~! ! !

ポイントを獲得したい場合は、問題を解くだけで十分です。ポイントを獲得したいが、問題を解決したくない場合は、家に帰って、これが良いことかどうかをお母さんに聞いてください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。