javascript - 浏览器上的 "javascript:"不会改变类型

标签 javascript browser

看看这段代码,

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function change()
{
 document.getElementById("myInput").type="text";
}
</script>
</head>
<body onload="setTimeout('change()',2000);">
<input type = "button" id="myInput">
</body>
</html>

现在,我的按钮在 2 秒后变成了文本框。我很高兴! 为什么当我尝试从浏览器(我在 IE6 和 Chrome 中测试过)使用

javascript:document.getElementById("myInput").type="text"

不同的浏览器有不同的行为方式... 当我尝试 javascript:document.getElementById("myInput").value="myNewValue" 时,IE6 更改了值,但 chrome 没有..

为什么“javascript:”会这样?

最佳答案

使用:

javascript:document.getElementById("myInput").setAttribute('type','text');

我不确定为什么会这样,我认为这是因为设置一个值会返回该值,而返回一个字符串会导致页面显示该字符串,例如:

javascript:"test";

将打开带有“测试”的页面。使用 setAttribute() 不返回任何内容。

关于javascript - 浏览器上的 "javascript:"不会改变类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505311/

相关文章:

javascript - 如果部分 url 匹配,则突出显示父菜单

javascript - 如何找到每个下拉菜单的长度?

javascript - 我可以强制浏览器在继续执行 javascript 之前呈现出 DOM 更改吗?

javascript - 如何在打开链接时禁用深层链接,它不会重定向到应用程序,而是转到移动浏览器

jquery - 浏览器:按下转义键后继续 gif 动画

javascript - 从弹出窗口打开新的浏览器窗口

javascript - 如何处理损坏的浏览器?

javascript - 如何使用单击事件处理程序在点之间画线?

javascript - 使页面的第一部分保持在顶部

javascript - Angular 4/5 中的事件处理程序性能问题