2011-06-19 23 views
0

我試圖做出鳴叫若干的div的動態dreated內容都作爲一個句子行程多innerHTML來更新Twitter的狀態和編碼

JavaScript的

function toggle(){ 
     var joe = document.getElementById("fulltxt"); 
     document.getElementById("tweet").setAttribute('href','http://twitter.com/home?status=' + 

joe.innerHTML) 
    } 

內容我的鏈接要鳴叫

<div id="fulltxt"> 
<div id='action'> actiontext </div> 
<div id='reason'> reasontext</div> 
<div id="party"> partytext </div> 
</div> 

鏈接鳴叫

<a id="tweet" href='#' onClick="toggle(this.value)">שתף בטוויטר</a> 

我得到的問題是

Invalid Unicode value in one or more parameters /intent/tweet?source=webclient&text=%3Cdiv+id%3D%22action%22%3E%F9%EC%E5%ED%3C%2Fdiv%3E%E5%E6%E4+%E1%E2%EC%EC%3Cdiv+id%3D%22party%22%3E%E1%E9%E1%E9+%F0%FA%F0%E9%E4%E5%3C%2Fdiv%3E

可能有兩個問題

  1. html標籤 - 所以不是我需要串起來的個人div的(動作+原因+方)而不是使用全文
  2. 的語言 - (其在希伯來語)我認爲這可能是一個編碼問題

來測試它,我把函數中的fulltxt替換爲單個div的id之一,當個別div的內容是英文時它可以工作,但是當它在希伯來語中它給了我一個錯誤

回答

1

你是糾正它是一個編碼問題。此外,innerHTML將包含嵌套div的標籤。 IE支持的innerText,其餘使用textContent

function toggle(){ 
    var joe = document.getElementById("fulltxt"); 
    var text = joe.textContent?joe.textContent:joe.innerText; 
    document.getElementById("tweet").setAttribute('href','http://twitter.com/home?status=' + 
    encodeURIComponent(text); 
} 

encodeURIComponent

通過由一個替換某些字符的每個 實例進行編碼的統一資源標識符 (URI)成分, 兩個,三個,或表示UTF-8編碼的 字符的四個轉義序列 (將僅由四個轉義字符 組成 兩個「代理」字符)。

+0

偉大的工程位只有一部分現在我如何串在一起的個別divs的內容 – Dasa

+0

innerText而不是內部html – Dasa

+0

啊,是的,道歉。我錯過了 – mplungjan