我正在尝试做一些相当简单的事情,但是由于我可能不太擅长搜索文档,所以我不能让它工作。
我有一个功能正常的内联JS,看起来像这样:
<A title="Wolfram IP Calc" href="javascript:txt=prompt('Enter%20IP%20address,%20e.g.%2010.20.30.40/29','1.2.3.4/5');%20if(txt)%20window.open('http://www.wolframalpha.com/input/?i='+txt);void(O);">Compute!</A>
由于各种原因,我正在尝试分离JS,这就是我遇到问题的地方。
我已经创建了下面的测试页面,它给出了错误Uncaught TypeError: Cannot call method 'addEventListener' of null
<HTML> <HEAD profile="http://www.w3.org/2005/10/profile"> <script type="text/javascript">
var compute = document.getElementById('compute');
compute.addEventListener('click', computeThatThing, false);
function computeThatThing() {
txt=prompt('Enter%20IP%20address,%20e.g.%2010.20.30.40/29','1.2.3.4/5');
if(txt) {
window.open('http://www.wolframalpha.com/input/?i='+txt);
}
}
</script></HEAD>
<BODY>
<A title="Wolfram IP Calc" id="compute" href="javascript:void(O);">Test</A>
</BODY>
</HTML>
我能找到的唯一能指出这样的问题的事情是addEventListener
不能与<A>
一起工作,但应该处理<IMG>
(这很适合我,因为我将把它倒在一些图像上),所以我尝试添加以下内容,但没有用处:
<img id="compute" src="http://products.wolframalpha.com/images/products/products-wa.png" />
提前感谢你指出我做错了什么。这可能是显而易见的,但我几乎没有使用JS的经验,到目前为止,我大多数时候都是在需要的时候进行货物狂欢。
发布于 2018-09-22 06:16:14
将脚本标记移动到BODY的末尾,而不是HEAD,因为在当前代码中,当脚本计算时,html元素不存在于文档中。
因为你不想要你的jquery。使用window.onload或document.onload执行当前脚本标记中的整段代码。window.onload vs document.onload
https://stackoverflow.com/questions/9856140
复制相似问题