2013-07-26 265 views
0

我的大部分工作都是在Webkit上運行並使用Chrome的開發工具完成的。但是這段代碼不能在Firefox中運行;它甚至不會拋出控制檯錯誤,所以我不知道什麼是錯的。有任何想法嗎。我相信它非常容易。我的代碼旨在爲特定的語法「t_」「r_」引入外部文檔;我試圖找到所有說的引用,並用超鏈接替換它們。我「馬新手JS編碼器,用於你在這裏無疑看到的naiveness非常抱歉。JS適用於IE,Safari,Chrome,但不適用於Firefox?

(我使用的是FF 22.0)

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function pre_forwarder(){ //First Step 
patt_1=/\[r_/g; 
patt_2=/\[t_/g; 
patt_S_and_R_1 = "[r_"; 
patt_S_and_R_2 = "[t_"; 
forwarder(patt_1,patt_S_and_R_1); 
forwarder(patt_2,patt_S_and_R_2); 
} 
function forwarder(Pattern,Pre_SearchReplace){ 
rule_string = document.getElementById("divid"); 
rule_string = rule_string.innerText; 
var patt1 = Pattern; 
while (patt1.test(rule_string)==true) 
     { 
     begin_string = patt1.lastIndex; 
     fullpar_string = patt1.lastIndex + 5; 
     partial_string = rule_string.slice(begin_string,fullpar_string); //5 characters 
     //alert("partial_string-"+partial_string); 
     refined_string_end = partial_string.indexOf("]"); 
     refined_str = partial_string.slice(0,refined_string_end); //raw number 
     full_str = Pre_SearchReplace+refined_str+"]"; //restructured 
     SectionNum = refined_str; 
     SearchReplace = full_str; //Variable to pass to parse() 
     //alert("S&R="+SearchReplace+" >> full_string-"+full_str); 
     //alert("S&R"+SearchReplace+">>SecNum-"+SectionNum+">>Pre-Search-"+Pre_SearchReplace); 
     Parse(SearchReplace,SectionNum,Pre_SearchReplace); 
     } 
//var patt_end=/\[t_/g; 
} 
function Parse(SearchReplace,SectionNum,Pre_SearchReplace){ 
if (Pre_SearchReplace == patt_S_and_R_1){ 
ref_URL = "UEB_Ref.html#"; 
}else if (Pre_SearchReplace == patt_S_and_R_2){ 
ref_URL = "UEB_Tech.html#"; 
} 
linkCreate = '<a href="javascript:Dude(\''+ref_URL+SectionNum+'\');">Link to ch-'+SectionNum+'</a> '; 
document.getElementById("divid").innerHTML = document.getElementById("divid").innerHTML.replace(SearchReplace, linkCreate); 
} 
function Dude(SectionNum){ 
alert(SectionNum); 
} 
</script> 
</head> 
<body onload="pre_forwarder();"> 
<button onclick="pre_forwarder();"> 
New Tool</button> 
<div id="divid"> 
hello [dude] ok the end [r_12.1][r_7] [r_22] 
<br>bro try this [t_15.3][t_6] [t_5.5] 
</div> 
<div id="hyperlink"> 
</div> 
</body> 
</html> 
+2

這需要1)格式和2)小提琴 – BLSully

回答

1

rule_string = rule_string.innerText;在15行FF不知道innerText,你需要使用textContent,或像修復:

rule_string = rule_string.innerText || rule_string.textContent; 

A live demo at jsFiddle


作爲一個方面說明:看起來您的應用程序基於全局變量。請不要使用這種編程技術。只要沒有太多的代碼,它就可以完成這項工作,但是當你的應用程序變得越來越大時,你將失去對大量全局變量的控制。

對於初學者來說,你可以閱讀JavaScript Guide在MDN,特別是第4章,第8和9

+0

感謝都行;我是一個新手,通過一切手段。 – CertDoctor

+0

@CertDoctor如果你可以使用答案,你也可以通過勾選答案左上角的複選標記來接受答案。 – Teemu

相關問題