使javascript运行onclick而不是pageload

时间:2013-02-03 17:44:34

标签: javascript

我有以下加载页面时运行的脚本:

<script language="JavaScript"> 
     j=parseInt(Math.random()*ranobjList.length);
     j=(isNaN(j))?0:j;
     document.write(unescape(ranobjList[j]));
</script>

如何在单击按钮时执行它,而不是在加载时执行它?

2 个答案:

答案 0 :(得分:2)

将它放在一个函数中,并在元素上的onclick事件上调用它

function myEvent() {
    j=parseInt(Math.random()*ranobjList.length);
    j=(isNaN(j))?0:j;
    document.write(unescape(ranobjList[j]));
}

然后在你的HTML中

<input type='button' value='Click Me' onclick='myEvent();' />

答案 1 :(得分:0)

您拥有的代码示例实际上并未在页面加载时运行。它正在运行,因为它由DOM解释。

但这是您的请求的解决方案。

HTML按钮必须位于脚本标记之上。所以你会想要这样的东西:

<input type="button" value="Click me for action" id="actionButton" />

<script type="text/javascript">
    document.getElementById("actionButton").addEventListener("click", function() {
        j=parseInt(Math.random()*ranobjList.length);
        j=(isNaN(j))?0:j;
        document.write(unescape(ranobjList[j]));
    }, false);
</script>