Javascript 我可以使用document.getElementById(someid).onclick作为标记a吗
我试图调用一个javascript函数onclick。我写过这样的东西Javascript 我可以使用document.getElementById(someid).onclick作为标记a吗,javascript,Javascript,我试图调用一个javascript函数onclick。我写过这样的东西 <script type="text/javascript"> function readPage(){ alert("Hello"); } document.getElementById('read').onclick=readPage; </script> <a id="read" href="">read</a> 函数re
<script type="text/javascript">
function readPage(){
alert("Hello");
}
document.getElementById('read').onclick=readPage;
</script>
<a id="read" href="">read</a>
函数readPage(){
警惕(“你好”);
}
document.getElementById('read')。onclick=readPage;
我试图调用readPage函数,但它不起作用?如果我在标记内写onclick,它就起作用,但我上面写的方法不起作用。为什么?您首先必须禁用锚点的默认方向协议(即,不让a转到href)
href=“#”
事件.preventDefault()
函数示例<script type="text/javascript">
function readPage(){
alert("Hello");
}
document.getElementById('read').onclick=readPage;
</script>
<a id="read" href="#">read</a>
函数readPage(){
警惕(“你好”);
}
document.getElementById('read')。onclick=readPage;
你怎么做没有错,但是什么时候做。在加载DOM之前,无法访问它(如运行getElementById())。最简单的方法是在窗口内运行代码。onload
如下所示:
window.onload = function () {
document.getElementById("read").onclick=readPage;
};
它将使用空的
href
属性(然后将使用页面的当前URL),
但是,如前所述,您必须使用window.onload来附加单击处理程序,或者您必须将脚本块移动到a
元素之后
否则,getElementById
无法找到该元素,因为它在DOM树中尚不存在
<a id="read" href="">read</a>
<script type="text/javascript">
function readPage(){
alert("Hello");
return false;
}
document.getElementById('read').onclick=readPage;
</script>
函数readPage(){
警惕(“你好”);
返回false;
}
document.getElementById('read')。onclick=readPage;
如前所述,您使用例如return false编码>使浏览器不跟随URL。如果您将URL更改为href=“#”
,甚至需要此选项,因为否则浏览器会将页面滚动到顶部
自己测试一下:
阅读有关的更多信息。有两种方法可以真正做到这一点(没有任何特定于浏览器的功能)。一是
函数stopDefault(e)//用于停止默认操作的跨浏览器函数w
{
如果(e&e.preventDefault)
{
e、 预防默认值();
}
其他的
{
window.event.returnValue=true;
}
返回false;
}
函数读取页(事件){
警惕(“你好”);
返回stopDefault(事件);//防止默认操作
}
window.onload=函数(事件){
document.getElementById('read')。onclick=readPage;
}
或:
函数stopDefault(e)
{
如果(e&e.preventDefault)
{
e、 预防默认值();
}
其他的
{
window.event.returnValue=true;
}
返回false;
}
函数读取页(事件){
警惕(“你好”);
返回stopDefault(事件);//防止默认操作
}
我已经使用了stopDefault函数,您需要停止链接的默认操作,否则它将尝试转到href中的url。不,它不起作用,我在其他一些.js文件中编写了javascript函数。@Vipul:确保使用
tag@Felix哎呀,我把它贴错地方了,谢谢。更新。哦,好的:)删除了我的评论;)
<script type="text/javascript">
function stopDefault(e) //cross browser function for stopping default actionw
{
if (e && e.preventDefault)
{
e.preventDefault();
}
else
{
window.event.returnValue = true;
}
return false;
}
function readPage(event){
alert("Hello");
return stopDefault(event);//prevent default action
}
window.onload = function(event){
document.getElementById('read').onclick=readPage;
}
</script>
<a id="read" href="#">read</a>
<script type="text/javascript">
function stopDefault(e)
{
if (e && e.preventDefault)
{
e.preventDefault();
}
else
{
window.event.returnValue = true;
}
return false;
}
function readPage(event){
alert("Hello");
return stopDefault(event);//prevent default action
}
</script>
<a id="read" href="#" onclick="readPage(event)">read</a>