我正在尝试建立一个链接,将多个div的动态处理内容全部推送为一句话
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
可能有两个问题
测试它,我用一个单独的div的id替换了函数中的fulltxt,当个别div的内容是英文时它可以工作但是当它在希伯来文时它给了我一个错误
答案 0 :(得分: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);
}
编码统一资源标识符 (URI)组件通过替换每个 一个特定字符的实例, 两个,三个或四个转义序列 表示的UTF-8编码 性格(只会四个逃脱 由...组成的字符序列 两个“代理”人物。)