Div onclick功能不起作用

时间:2014-04-09 10:42:31

标签: javascript php html redirect onclick

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>';

如何解决这个问题?

2 个答案:

答案 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."'"