onlcick功能在以下情况下不起作用它总是我在ie8中检查过,而在某些计算机中firefox和chrome也无法正常工作。
$ad_div1='<div onclick="window.location=\''.$url.'\'">
<a target="_blank" href="http://yahoo.com"> <img src="http://rose.com/abc.jpg"/></a>
</div>';
但是当我在alert
工作之前给出window.location
,即
$ad_div1='<div onclick="alert(1);window.location=\''.$url.'\'">
<a target="_blank" href="http://yahoo.com"> <img src="http://rose.com/abc.jpg"/></a>
</div>';
如何解决这个问题?
答案 0 :(得分:1)
代码看起来应该生成这样的代码
(当$url = "http://example.com"
)时:
<div onclick="window.location='http://example.com'">
<a target="_blank" href="http://yahoo.com">
<img src="http://rose.com/abc.jpg" />
</a>
</div>
这似乎适用于Chrome和Firefox,see this jsfiddle。 我猜测$ url变量在某种程度上是错误的,看一下你生成的代码输出,onclick属性看起来像我的例子吗?
修改强>
不明白为什么要这样做,依靠javascript进行跟踪,打开标签/窗口等......
为什么不在服务器上创建服务来进行跟踪并重定向到提供的网址, 所以你可以像这样简化链接:
$ad_div1='<a target="_blank"
href="http:yourdomain.com/redirect?target=' .
urlencode($actualTargetUrl) . '">
<img src="http://rose.com/abc.jpg" />
</a>';
然后使用php(或其他一些服务器脚本)或重写规则来处理yourdomain.com上的所有/redirect*
网址
记录/注册请求并将302“临时移动”重定向到target
参数指定的URL。
答案 1 :(得分:0)
到底发生了什么?
我想当你点击链接时,浏览器会触发事件 - &gt;然后事件会发送给你的div和eval代码在你的&#34; onclick&#34;属性 - &gt;然后事件根据你的&#34; a&#34;的href属性转到文档和文档更改位置。元件。这就是为什么你的&#34; onclick&#34;不工作。
您可以尝试此解决方案:
onclick="var event = arguments[0] || window.event; event.stopPropagation();window.location='".$url."'"