2012-03-28 64 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或其他),但你需要编写所有的通信。

相关问题