2017-04-10 63 views
0

我在jsfiddle上找到了這段代碼,它在小提琴內部工作正常。但是,當我嘗試將其放入自己的HTML文件中時,我無法使其工作。我確信我留下了一些腳本標記,但我不知道該怎麼做。任何投入將不勝感激。無法讓jsfiddle代碼在jsfiddle外工作

這裏是小提琴:Working Fiddle

附:代碼應該從URL中提取信息並填寫表單。

-Thanks

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Parser</title> 
</head> 

<body> 
<p>Your first name: 
<br /><input name="name (awf_first)" id="name (awf_first)" /></p> 

<p>Your last name: 
<br /><input name="name (awf_last)" id="name (awf_last)" /></p> 

<p>Your email: 
<br /><input name="email" id="email" /></p> 

<p>Your password: 
<br /><input name="password" id="password" /></p> 


<script> 
var hashParams = window.location.hash.substr(1).split('&'); // substr(1) to 
remove the `?` 
for(var i = 0; i < hashParams.length; i++){ 
var p = hashParams[i].split('='); 
document.getElementById(p[0]).value = decodeURIComponent(p[1]);; 
} 
</script> 
</body> 

</html> 
+0

*「但是,當我嘗試將其放入自己的HTML文件中時,我無法啓動它。」*這是什麼意思?當你嘗試代碼時發生了什麼?你檢查控制檯是否有錯誤? –

+0

它沒有讀取URL中的變量並填寫表單。 – tdubb

+0

所以,我再問一次。你檢查控制檯是否有錯誤? –

回答

0

你的錯誤意味着document.getElementById(p[0])未找到#name#email的輸入元件。

這可能有兩個原因:

  1. 你不必與id S的所有元素:nameemail

檢查你的元素,確保你給他們正確的id s。您的代碼顯示的元素爲id s:name (awf_first)name (awf_last),當id s應該是:nameemail

  1. 您正試圖在元素被讀入DOM之前查找元素。

確保script自帶了大部分的HTML(只是body標籤結束前)後,因爲它是在小提琴顯示,讓你的時間運行線,元素(S )將已經在DOM中。

此外,請注意,在您的問題中,行// substr(1) to remove the '?'分爲兩行,並且正在導致代碼中出現錯誤。並且,在該評論中,用單引號改變圍繞?的反撥號。