5

次のようなJavaScript srcがある場合

<script src="http://domain.com/js/script.js"> 

末尾にさらに値を追加できますか

<script src="http://domain.com/js/script.js?state=1"> 

そして、そのjavascript内の状態を取得します??

このアイデアは、クライアントの解像度を取得してセッションに保存する必要があるが、php で取得できないため、javascript で取得する必要があるが、ソース コードからヌード化されたスクリプトを表示したくないという状況から生まれました。

ソースの多くがこのようなリンクを持っているのを見たので、それは可能だと思います!

4

3 に答える 3

12

グローバル変数と 2 つのスクリプト タグに頼るのではなく、実際の質問に対する実際の回答が必要な場合に備えて:

<script src="http://example.com/js/script.js?state=1"></script>

script.js内:

(function(){
  var myTags = document.getElementsByTagName("script");
  var src = myTags[myTags.length-1].src;
  var state = unescape(src).split("state=")[1].split("&")[0];
  alert(state);
}());

多くのものを渡す必要がある場合は、一般的な queryString パーサーを使用して、スクリプトの queryString をオブジェクトに変換します。

于 2013-07-08T17:49:50.737 に答える
4

このようなことはできませんか?

<script>
    var state = 1;
</script>
<script src="http://domain.com/js/script.js"> 
于 2013-07-08T16:32:08.540 に答える
1

JS を呼び出す前に変数を指定すると機能します。しかし、Global を vars で汚染したくない場合は、PHP のアプローチを試すことができます。

ヘッダーでjavascriptであることを宣言するPHPファイルを作成し、変数を$_GET値で取得して、フォーマットされたjsファイルを次のように出力します

<script src="http://domain.com/js/script.php?state=1" />

<?php
// We'll be outputting a JS
header('Content-type: text/javascript');

$phpState = $_GET['state'];
?>

function someCommonJS(){
    var myState = "<?=$phpState;?>"; /*printing php var into js*/
}

<?php
/* some more php*/
?>

/*some more js*/

if elseこのようにして、ユーザーがjsを介して実行した場合に表示されるすべてのものを見ることができずに、ファイルが必要に応じて表示されます。

于 2013-07-08T16:38:19.720 に答える