Javascript链接-试图设置元素值-奇怪的行为chrome&安卓
Javascript link - trying to set element value - weird behavior chrome & android
我在安卓系统中开发Hybrid应用程序时遇到了一个奇怪的问题,实际上我成功地在Chrome中复制了它。
基本思想是一个带有输入字段的HTML页面,并尝试使用JS注入来设置值:
javascript:document.getElementById('intest').value = '1111';
如果打开javascript链接,JS命令而不是设置文本输入字段-整个页面都将替换为您输入的值
这是我用于演示的HTML:
<html>
<body>
<p><input id='intest' type='text' /></p>
<input id='intest' type='text' />
<br/>
<h3>JS Command</h3>
<a href="javascript:document.getElementById('intest').value = '1111';">javascript:document.getElementById('intest').value = '1111';</a>
</body>
</html>
如果在控制台中输入相同的命令,它将按预期设置输入字段的值。
在Android中,使用webview.loadURL('javascript:….')时的行为是相同的;
你知道为什么会这样吗?
附言:我创建了一个简单的html页面来玩:https://dl.dropboxusercontent.com/u/453866/injectiontest.html
更新,IExplorer和Firefox也是如此。
这很奇怪,即使在单击锚标记后检查页面时,仍然可以看到标记。我发现,如果在更改值后添加return false;
,它将按预期工作。我测试的是chrome,而不是安卓。
<a href="javascript:document.getElementById('intest').value = '1111'; return false;">javascript:document.getElementById('intest').value = '1111'; return false;</a>
相关文章:
- Javascript链接-试图设置元素值-奇怪的行为chrome&安卓
- 如何在chrome中使用jquery操作剪贴板数据,IE 8&9
- CSS:禁用页眉&Chrome打印预览页脚
- 桌面Chrome&Firefox浏览器
- 为什么以下javascript在InternetExplorer&Mozilla,但在谷歌chrome中运行良好
- 访问V8 JavaScript中的行号(Chrome&Node.js)
- 将数组的值存储到Chrome本地存储&取回它们
- Node.js-样式没有't应用于页面&谷歌Chrome表示:未捕获语法错误:意外的令牌<
- chrome&safari会将内容作为字符串插入
- 放大&缩小在chrome中不起作用
- Node.js的子进程套接字写入在Chrome&FF
- 滚动到不在Chrome中工作&歌剧
- Chrome扩展:显示&隐藏元素
- 定时器JavaScript未在Chrome&最小化窗口时的Mozilla
- 点击提交按钮禁用然后表单提交在firefox上工作,但不在chrome&狩猎
- 鼠标悬停事件显示:none(隐藏)元素(chrome&opera)
- Chrome&Firefox日期功能不同.(新日期)
- 获取列表项jquery中的文本不适用于chrome&即
- javascript表单验证不适用于chrome&FF
- Chrome&Safari恢复到xhr轮询,而不是使用socket.io的websockets