2012-03-28 19 views
-4

なぜそれがPHPであなたがそうのようなスクリプトタグを開き、次の操作を行うことができるということです。PHPがlocalstorageにタップできないのはなぜですか?

<?php 
    print("<script>"); 
    print("alert('hey');"); 
    print("</script>"); 
?> 

しかし、あなたはこれを行うことはできません。

<?php 
    print("<script>"); 
    print("document.getElementById('fName').value = localStorage.getItem('FirstName');"); 
    print("</script>"); 
?> 

を私は理解できません違いは何ですか、あなたはphpの内部で動作するようにJavaScriptを得ることができる場合、なぜあなたはlocalstorageにタップできません?

+1

「できません」という意味を説明したい場合があります。エラーはありますか?使用しているブラウザはlocalStorageをサポートしていますか? –

+0

エラーが生じますか? –

+0

ページ上の 'fName'要素の前にそのJavaScriptを出力すると、最初に実行され、' fName'要素が見つかりません。私の推測では、あなたのコンソールはfName.valueがnull/undefinedであると言っています。 – MrCode

答えて

3

Javascriptの内容に依存することはありません。 PHPはあなたの出力を "フィルタリング"せず、ブラウザはPHPスクリプトの出力であることを認識しません。

このように出力せず、静的に文書に書き込むとスクリプトは機能しますか?セミコロンを忘れた場合、スクリプトは自動的に改行を追加せず、無効なJavascriptコードをプロキシする可能性があることに注意してください。

ブラウザのエラーコンソールの出力を貼り付けることはできますか?

0

あなたはどんなブラウザでこれを見ていますか? IIRC、localStorageは、IE8より前などではサポートされていません。クライアント側のJavascriptの問題とは何かについて、クライアント側についてより多くの情報を必要としています。

ymmdによると、PHPを使用していることは問題ではありません。実際、この質問の目的上は不要な合併症です。

0

PHPのブラウザJavaScriptを実行することはできません。あなたがやっていることは何らかのテキストを書くことです。それはブラウザに送られ、テキストをjavascriptとして解釈して実行します。

あなたができることは、クライアントが応答する(ajaxなどで)サーバーにコールバックして実行するテキストJavaScriptを作成することですが、すべての通信を書き込む必要があります。

関連する問題