2016-09-24 111 views
0

我試圖通過url運行JavaScript代碼以更改頁面中窗體的值。 這是HTML頁面的內容。通過網址將JavaScript注入頁面

javascript:document.getElementById('name').value = 'string1'; 

會發生什麼事是我的整個頁面將變爲空白,只值「字符串1」將顯示在頁面:

<html> 
<body> 
<form method='post'> 
Name: <input type='text' id='name' value='' /><br /> 
Family: <input type='text' id='family' value='' /><br /> 
Email: <input type='text' id='email' value='' /><br /> 
<input type='submit' value='Submit' /><br /> 
</form> 
</body> 
</html> 

現在,我在鍍鉻的URL部分,輸入以下值。 然而,運行下面的代碼工作正常:

javascript:document.getElementById('name').value = 1; 

它將改變名稱字段爲1 我不知道是什麼原因造成這個問題的價值。

注意:此工作的目的是在android中的webview中注入代碼。

任何意見表示讚賞。

+0

在jsfiddle上可以正常工作:https://jsfiddle.net/kscqdsw0/ –

+0

在firefox,chrome和android webview中,它有相同的問題。 –

+0

你準備好文件嗎?因爲我認爲錯誤在於此。 –

回答

-1

那是因爲你的屬性值

value='' 

後使用單引號,你改變它的使用

​​

使HTML變得

<input type='text' id='name' value=''string1'' 

在JavaScript值你可以修復它使用

value="" 

或使用

document.getElementById('name').value="string1"; 
+0

這並沒有解決問題。我將html更改爲雙引號或腳本來加雙引號,或者兩者都加雙引號,但是這三個都失敗了,並沒有解決問題。 –

-1

以及我嘗試下面的代碼

<html> 
<body> 
<form method='post'> 
Name: <input type='text' id='name' value='' /><br /> 
Family: <input type='text' id='family' value='' /><br /> 
Email: <input type='text' id='email' value='' /><br /> 
<input type='submit' value='Submit' /><br /> 
</form> 
<button onclick="change()">Click me</button> 
<script> 
function change(){ 
var obj=document.getElementById('name'); 
obj.value="string1"; 

} 
</script> 
</body> 
</html> 

和它工作得很好的問題是在你的腳本 你創建了一個函數來更改數值或只是將代碼放在腳本標籤中,像這樣

<script>document.getElementById('name').value="String1";<script> 
0

試試這個。

javascript:document.getElementById('name').value = 'string1'; undefined; 

固定在'未定義'上到任何返回字符串的腳本。