Javascript PHP document.write


Javascript PHP document.write

可能的重复项:
此代码中的.JS文件在哪里?他们为什么这样称呼它?

这是我的JavaScript代码。显示代码.php

<script type="text/javascript" charset="utf-8">(function(){
var a="publisher-121";
var n="top";
var z="45";
var h="125";
var w="125";
var nofollow="no";
var e=document.getElementsByTagName("script")[0];
var d=document.createElement("script");
d.src=('https:'==document.location.protocol ? 'https://' : 'http://') +"server.com/adcode.php?a="+a+"&h="+h+"&w="+w+"&n="+n+"&z="+z;
d.async = true;
d.defer = true;
d.type="text/javascript";
e.parentNode.insertBefore(d,e);
})();</script>

如您所见,URL 指向 http://server.com/adcode.php?a=publisher-121&n=top&z=45&w=125&h=125

此页面包含以下内容:(广告代码.php(

 <?php  echo "document.write('<div id='"ha_adblock ".$a."_".$z."'" class='"ha_adblock".$a."_".$z."'" style='"width:".$h."px;height:".$w."px;background:#eee;text-align:center;cursor:pointer'" onClick='"window.location.href=''click.php?a=".$a."&z=".$z."&g=http://refererurl.com/;''return false;'"><a href='"http://refererurl.com/'" onClick='"window.location.href=''click.php?a=".$a."&z=".$z."&g=http://refererurl.com/;''return false;'" style='"color:#333;font-weight:bold'">advert</a></div>');"; ?>

但是 - 页面只是显示为空白。Firebug 显示我的代码已加载并执行正常,没有错误。如果我只是在脚本标签中吐出上面的代码 (document.write(,它可以工作 - PHP 回调似乎不起作用?

不能

在包含在deferasync属性中的脚本中使用document.write。试图这样做是不合逻辑的。

此外,您需要转义字符串中的引号 - 任何带有颜色编码的编辑器都会向您显示属性内容不包含在 strine 中,除非您在其中的引号前放置'

您没有正确转义 PHP 文件中的双引号字符 ( " (。它们前面应该有反斜杠('(字符(见这里(。PHP 脚本应为:

 <?php echo "document.write('<div id='"adblock'" class='"ha_adblock121_45'" style='"width:125px;height:125px;background:#eee;text-align:center;cursor:pointer'" onClick='"window.location.href=click.php?g=http://refererurl.com/;return false;'"><a href='"http://refererurl.com/'" onClick='"window.location.href=click.php?g=http://refererurl.com/;return false;'" style='"color:#333;font-weight:bold'">advert</a></div>');"; ?>

<?php>(function(({document.write('

advert
'(;}(((;"; ?>

调用将在页面加载时执行的自动函数..:-(