我正在尝试在浏览器地址栏中执行以下操作:
javascript:document.getElementById('Input').value='0'
但它完全不同,只是在屏幕上显示0
。为什么会发生这种情况以及如何正确执行JavaScript以使用地址栏将0
指定为#input
的值。 提前致谢。
答案 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
是一个受欢迎的选择。