2012-11-22 40 views
0

我有一段简单的代码(包含在CMS中,不能被编辑),并且如果点击了它,需要在页眉中用Javascript读取它。如果链接已被点击,Javascript代码将被读取

下面是代码

<div id="example" class="page-element-outer" style="text-align: left"> 
    <div class="page-element-inner" > 
     <input type="image" name="Button1" id="Button" src="/getresource.axd?AssetID=16813" alt="Submit" style="text-align:left;" /> 
    </div> 
</div> 

你能帮助?

+0

我不明白这个问题! ,你可以添加更多的细节plz –

+1

你是什么意思“读取链接是否被点击”?你的意思是你想要一段JS代码在用户点击链接时运行,也就是说,响应点击? – nnnnnn

回答

1

您可以通过ID选择元素,并使用addEventListener方法附加单击事件侦听器。

document.getElementById("Button").addEventListener("click", callback, true); 

function callback() { 
    // Do some stuff in here when clicked 
    alert("clicked"); 

    // Return false to prevent the browser default 
    // click-behaviour, if that is desired 
    return false; 
} 

对于旧版浏览器

旧版本的IE不支持addEventListener,所以对于那些你可能需要做这样的事情:

var el = document.getElementById("Button"); 
if (el.addEventListener) { 
    el.addEventListener('click', callback, false); 
} else if (el.attachEvent) { 
    el.attachEvent('onclick', callback); 
} 

等待DOM准备就绪

如果您计划运行此i在页面的头部,您还需要将其包装为DOM就绪事件侦听器,否则会发生click事件未附加到元素的更改,因为该元素不存在于DOM中当你的脚本运行。

+0

感谢Christofer,但你能给我一个关于DOM-ready事件监听器的示例。对不起,但JavaScript不是我最强的技能。 – jelly46

+0

@ jelly46您可以将JavaScript添加到身体元素的底部,而不是放在头部。在这种情况下,您不需要DOM就绪回调。问题是如果你想跨浏览器支持,一个DOM就绪回调是相当广泛的。看看[这个SO问题](http://stackoverflow.com/questions/799981/document-ready-equivalent-without-jquery)。 –

+0

说实话,我不知道。我已经明确告诉把JS放在标题 – jelly46