2010-09-26 63 views
0

我有一段,我想用javascript prompt函數編輯。 所有工作正常,但我沒有輸入<>。他們看起來在HTML不錯,但是當我想再次對其進行編輯,我看到醜陋&gt;&lt;如何獲得一致的javascript提示字符串和innerHTML

的問題,可以通過以下方案進行簡單的複製:

  1. 按下編輯鍵,
  2. 輸入字符串<<<>>>
  3. 再次按編輯按鈕。

您將在對話框中看到難看的提示符號。

在提示符對話框中出現難看的未轉義符號。

事實上,在將innerHTML傳遞給提示函數之前,我應該取消轉義字符,這怎麼辦呢?下面我的代碼

部分:

<script type="text/javascript"> 
    function edit() 
    { 
    str = document.getElementById('par').innerHTML; 
    str = prompt(str, str); 
    document.getElementById('par').innerHTML = str; 
    } 
</script> 


<p id="par">aaa</p> 

<input type="button" onclick="edit()" value="Edit" /> 

我喜歡API函數代替人工更換gt;&lt;的。
jquery解決方案也適用於我。

謝謝!

+2

+1傑夫的回答。另外請注意,使用'prompt'在這些日子裏是不被接受的。 IE7和更高版本在默認情況下完全禁止'prompt',這使得它對大多數網站無法使用。它也是一個模式彈出式窗口,無論如何,沒有人真的喜歡它。考慮使用頁內彈出窗體來代替。 – bobince 2010-09-26 00:33:07

+0

@bobince非常感謝您提供更多信息。你能建議一個好的文章或網站,我可以閱讀它嗎? – sergtk 2010-09-26 00:36:15

+1

見例如。 http://www.anyexample.com/webdev/javascript/ie7_javascript_prompt%28%29_alternative.xml – bobince 2010-09-26 09:53:03

回答

4

如果您確實只想要文本內容,那麼您應該使用文本值而不是innerHTML屬性。

在jQuery中,你可以做到這一點,像這樣:

var paragraph = $("#par"); 
var stringValue = paragraph.text(); 
stringValue = prompt("Please ammend your text", stringValue); 
paragraph.text(stringValue); 
相關問題