由于顺序是:
-首先解析 PHP 并将 HTML 发送到客户端-然后
客户端运行 HTML 中的 Javascript
做你想做的事将需要多个请求。
你可以做的是:
- 加载使用 Ajax(第二个请求)将 javascript 变量发送到服务器的 HTML 页面。然后服务器使用 XML 响应 Ajax 请求,并且 javascript 应该已经知道如何处理答案。
- 加载一个直接刷新自身的 HTML 页面,但将 javascript 变量作为请求变量(POST 或 GET)发送。就像是:
<?php
if (!isset($_REQUEST['iframe']) { // php checks if this it got the variable
// it is not given yet, so let javascript refresh and give the variable
?>
<script>
var url = window.location.href.split('#')[0];
var devider = url.indexOf('?') == -1 ? '?' : '&';
var hash = typeof window.location.href.split('#')[1] == 'undefined' ? '' : '#' + window.location.href.split('#')[1];
if ( window.self === window.top ) {
window.location.href = url + devider + 'iframe=0' + hash;
} else {
window.location.href = url + devider + 'iframe=1' + hash;
}
</script>
<?php
} else {
// it is given to php, lets do something with it...
if ($_REQUEST['iframe'] == 1) {
// ok, we're in an iframe. So what do you want to do?
} else {
// ok, we're not in an iframe. So what do you want to do?
}
}
?>