2012-03-28 35 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>"); 
?> 

我只是不明白有什麼區別是,如果你可以讓JavaScript在PHP內部工作,爲什麼你不能進入本地存儲?

+1

你可能想解釋你的意思是「不能」。有錯誤嗎?您正在使用的瀏覽器是否支持localStorage? – 2012-03-28 11:02:30

+0

你有什麼錯誤嗎? – 2012-03-28 11:03:20

+0

如果在頁面上的'fName'元素之前輸出該Javascript,它將首先執行並且不會找到要填充的'fName'元素。我的猜測是你的控制檯說fName.value是null/undefined。 – MrCode 2012-03-28 11:12:14

回答

3

對Javascript的內容沒有依賴性。 PHP不會「過濾」你的輸出,並且你的瀏覽器不會識別它是PHP腳本的輸出。

如果您不以這種方式輸出腳本,而是將其靜態寫入文檔,腳本是否可以正常工作?請注意,如果您忘記了分號,腳本不會自動添加換行符,並可能導致無效的Javascript代碼。

你可以粘貼瀏覽器錯誤控制檯的輸出嗎?

0

你在瀏覽什麼瀏覽器?例如,在IE8之前,甚至不支持localStorage。我們將需要更多關於事物客戶端的信息,當涉及到客戶端JavaScript問題時。

正如ymmd所說,你使用PHP並不重要;實際上,對於這個問題來說這是一個不必要的複雜因素。

0

您無法在PHP中運行瀏覽器JavaScript。你正在做的是寫一些文本,發送到瀏覽器,它將文本解釋爲JavaScript,並運行它。

你可以做的是寫文本的JavaScript,運行在客戶端上的回調函數與服務器的回覆(使用ajax或其他),但你需要編寫所有的通信。

相關問題