【发布时间】:2010-12-30 09:06:19
【问题描述】:
我不确定这是 Chrome 特有的,但确实如此。这适用于所有其他浏览器,包括所有 IE* 浏览器等。事实上,这里没有特定于客户端的代码。所有这些都是在服务器上生成的。然而,在清除 Chrome 的缓存一百万次并重新启动它之后......以下不起作用:
<script type="text/javascript">
// BEGIN PARAMETERS
<?php
if (isset($someid) && $someid == 'foo') {
echo "var somevar = 'foo';\n";
} else {
echo "var somevar = '#';\n";
}
?>
var invisible = '#';
var text_counter = '#';
// END PARAMETERS
</script>
在来自 $someid == 'foo' 的每个浏览器上,var 都会正确显示,它在查看源代码后显示为 var somevar = 'foo'; Chrome 始终只显示 var somevar='#';... 不知道为什么。
我还把它扔到了嵌入 javascript 的页面中:
<?php
echo "someid: {$someid}\n";
?>
这验证了 $someid 确实是 foo。然而第二个 else 块命中,仅在 chrome 上。
更新:我注意到当我右键单击 Chrome 并点击“检查元素”时,CORRECT var somevar 值就在那里。只有在查看源代码中设置不正确。这真的很奇怪,考虑到如果您在初始 HTTP GET 之后修改 DOM 是正常行为,这里不是这种情况。没有任何 XHR 或时髦的 DHTML 发生。只是一个 HTTP GET,上面的代码是根据那个 GET 请求处理的。
【问题讨论】:
-
$someid实际上是如何设置的? -
这还重要吗?考虑到它是在服务器端设置的。为什么铬在乎?
-
生成的 JS 代码在浏览器中看起来没问题吗? (如果您查看页面源代码)
-
生成的JS代码在浏览器中看起来很好,除了上面提到的问题。语法上一切都很好。
-
你能给我们粘贴一个关于错误的工作示例吗?如果您能给我们减价,那将有助于我们帮助您解决这个问题。
标签: php javascript google-chrome