簡體   English   中英

Javascript .replace在特定服務器上失敗

[英]Javascript .replace fails on specific server

我遇到一些Javascript問題,當連接到localhost時,它似乎在我的筆記本電腦上可以正常工作,但是當代碼放在遠程服務器上並且我從同一台筆記本電腦和瀏覽器(IE11)連接到該Javascript時,它卻無法正常工作。 相關代碼段為:

      var wktxt = inputs[i].getAttribute( "ondblClick" );
      wktxt = wktxt.replace("(" + rowno,  "(" + rowcnt)
      inputs[i].setAttribute( "ondblClick", wktxt );
      inputs[i].style.backgroundImage = "url()";  

它在第二行失敗,並顯示“對象不支持屬性或方法'替換'”,但問題並未在本地觸發,並且行為精確如預期(這是在HTML表中克隆行的某些邏輯的一部分)。 當我啟動故障調試時,wktxt包含“ function ondblclick(){AddNotes2(1,0)}”,rowno為1,rowcnt為7。

有任何想法嗎? 這段代碼是在循環內執行的-與在每次迭代中重新執行的var聲明有什么關系嗎?

由於replace方法是字符串對象原型的一部分。 似乎您的var wktxt的結果可能並不總是等於字符串。 要對此進行測試,可以使用typof語句。 就像是

if (typeof wktxt === 'string') {
    wktxt = wktxt.replace("(" + rowno,  "(" + rowcnt)
    inputs[i].setAttribute( "ondblClick", wktxt );
    inputs[i].style.backgroundImage = "url()";
}
else {
    //write some code here to put whatever you want in wktxt should it fail to evaluate to
    // a string
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM