JavaScript在地址栏中无法正确执行

时间:2011-04-23 00:28:39

标签: javascript jquery javascript-events

我正在尝试在浏览器地址栏中执行以下操作:

javascript:document.getElementById('Input').value='0'

但它完全不同,只是在屏幕上显示0。为什么会发生这种情况以及如何正确执行JavaScript以使用地址栏将0指定为#input的值。 提前致谢。

4 个答案:

答案 0 :(得分:1)

出于某种原因,您需要将;void 0添加到您在地址栏中运行的脚本的末尾,以防止加载新页面。

同时检查js错误控制台以查看是否存在任何错误(如果该元素不存在)

答案 1 :(得分:0)

您可能想尝试getElementByType('input')[0]而不是......

答案 2 :(得分:0)

getElementById返回一个元素,而不是数组,这就是您的语句无法正常工作的原因。删除[0]可能工作。

您似乎也在寻找input元素,因此如果您没有id="input"元素,则可以使用getElementsByTagName(请注意s )。

它返回具有给定标记名称的所有元素:

javascript:document.getElementsByTagName('input')[0].value='0'

答案 3 :(得分:0)

运行javascript:URI时,脚本的返回值(如果未定义)将转换为字符串。然后将该字符串作为HTML加载。返回值只是脚本执行的最后一个语句的值。

您可以通过将其放在网址栏中来看到这一点:javascript:"<h1>Hey</h1>"

在您的情况下,脚本的返回值是字符串'0',这正是您看到解析为HTML的内容。

您可以通过在脚本末尾放置一些未定义的值来强制返回值。 void 0是一个受欢迎的选择。