【发布时间】:2014-04-04 00:51:13
【问题描述】:
我有以下代码:
<HTML>
<HEAD>
<SCRIPT>
function myFunction(atlasTrackingURL)
{
var atlasURL = atlasTrackingURL;
if (!atlasURL) return;
//Build a cache busting mechanism
var timestamp = new Date();
var queryString = "?random=" + Math.ceil(Math.random() * 999999999999) +
timestamp.getUTCHours() + timestamp.getUTCMinutes() +
timestamp.getUTCSeconds();
//Build the final URL
atlasURL = atlasURL + queryString;
if (!document.getElementsByTagName || !document.createElement
|| !document.appendChild)
{return false;}
else
{ //Activate the JACTION call
var script = document.createElement("script");
script.type = "text/javascript";
script.src = atlasURL;
document.getElementsByTagName("head")[0].appendChild(script);
return true;
}
}
</SCRIPT>
</HEAD>
<BODY>
<a href="http://www.microsoft.com" onclick = "myFunction('http://view.atdmt.com/jaction/adoakb_PiggybackJSTest_1')">Test - Click Me</a>
</BODY>
</HTML>
它每次都可以在 Internet Explorer 中运行,但很少在 Chrome 和 Firefox 中运行。为什么会这样?
这些浏览器不能很好地处理onClick 函数吗?我还有其他选择吗?
我正试图帮助客户找出为什么他们的跟踪标签没有在这些浏览器中的点击时一直触发。
谢谢,
【问题讨论】:
-
检查开发工具并确保其他元素没有重叠
-
减少问题空间 - 这行得通吗:jsfiddle.net/2Qegs?如果是这样,那么除了浏览器之外还有其他事情发生。
-
该代码确实有效,但我仍然很困惑为什么它在 IE 中 100% 的时间都有效,而不是 Firefox 和 Chrome。我认为这可能是每个浏览器以某种方式解释代码的方式,但我什至不知道从哪里开始寻找。
-
你有一个竞争条件,在链接将你发送到另一个页面之前,你不能真正依赖脚本来加载。
-
我可以使用 setTimeout 函数来帮助解决这个问题吗?
标签: javascript html