我想在点击时调用JavaScript文件。加载文件后,我想将用户重定向到目标网页。
这是我的代码:
<script type="text/javascript">
document.getElementsByTagName("body").onclick = function () {
var js = document.createElement("script");
js.type = "text/javascript";
js.onload = function () {
window.location.href = "https://google.com/";
};
js.src = "((JAVASCRIPT SOURCE))";
document.body.appendChild(js);
};
</script>
在脚本加载之前延迟着陆页的目的是因为某些浏览器在脚本执行之前加载着陆页,我需要调用脚本以进行跟踪。它只是用来捕获总的“点击次数”,如果你愿意的话。
你能帮我弄清楚为什么以上不起作用吗?我在单击主体时尝试调用脚本,然后在加载脚本后,使用window.open转到目标网页。
谢谢,
答案 0 :(得分:0)
首先document.getElementsByTagName()
返回HTMLCollection:
Element.getElementsByTagName()方法返回具有给定标记名称的元素的实时HTMLCollection。
要访问第一个元素,为了能够附加您的事件监听器,您必须这样做:
document.getElementsByTagName('body')[0].onclick = function () { ... }
而不是document.getElementsByTagName('body')[0]
你可以使用这个已经用过的速记:
document.body.onclick = function () { ... }
此外,如果您的脚本放在<head>
中,则需要将其包含在onLoad
或onDOMContentLoaded
中:
window.onload = function() {
document.body.onclick = function() {
var js = document.createElement("script");
js.type = "text/javascript";
js.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js";
document.body.appendChild(js);
js.onload = function() {
window.location.href = "https://www.example.com";
};
};
}
CLICK ME