Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript链接-尝试设置元素值-怪异行为chrome&;安卓_Javascript_Android_Internet Explorer_Google Chrome_Firefox - Fatal编程技术网

Javascript链接-尝试设置元素值-怪异行为chrome&;安卓

Javascript链接-尝试设置元素值-怪异行为chrome&;安卓,javascript,android,internet-explorer,google-chrome,firefox,Javascript,Android,Internet Explorer,Google Chrome,Firefox,我在Android上开发一个混合应用程序时遇到了一个奇怪的问题,实际上我在Chrome上复制了它 基本思想是一个带有输入字段的HTML页面,并尝试使用JS注入设置值: javascript:document.getElementById('intest').value = '1111'; 如果打开javascript链接,则使用JS命令而不是设置文本输入字段-整个页面将替换为您输入的值。 这是我用于演示的HTML: <html> <body> <p>&

我在Android上开发一个混合应用程序时遇到了一个奇怪的问题,实际上我在Chrome上复制了它

基本思想是一个带有输入字段的HTML页面,并尝试使用JS注入设置值:

javascript:document.getElementById('intest').value = '1111';
如果打开javascript链接,则使用JS命令而不是设置文本输入字段-整个页面将替换为您输入的值。

这是我用于演示的HTML:

<html>
<body>
<p>&lt;input id=&#39;intest&#39; type=&#39;text&#39; /&gt;</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>

输入id=';intest&39;类型=';正文'/


JS命令
如果在控制台中输入相同的命令,它将按预期设置输入字段的值

在Android中,使用webview.loadURL(“javascript:…”)时的行为是相同的

你知道为什么会这样吗

另外,我创建了一个简单的html页面:


更新,IExplorer和Firefox也是如此。

这很奇怪,即使在单击锚定标记后检查页面,仍然可以看到标记。我发现如果添加
返回false更改值后,它将按预期工作。我测试的是chrome,不是Android

<a href="javascript:document.getElementById('intest').value = '1111'; return false;">javascript:document.getElementById('intest').value = '1111'; return false;</a>


使用“return false;”很好,你有没有解释为什么会改变什么?这是一种防止默认浏览器行为的方法,比如
event.preventDefault()
所以,我猜这是一个bug,因为我无法想象这里的“default”预期行为。我想这是因为你在href属性中有它,因此,chrome很难完全理解您将用户发送到哪里。在onclick属性而不是href中尝试它,但不返回false。我猜这也行。我实际上是从将JS命令粘贴到浏览器输入行开始的,这类似于android代码注入中loadURL命令的效果。onClick是一个内部页面JS,不通过浏览器URL逻辑-因此它可以工作。