一個JavaScript「複製剪貼板」功能剝離空白我有一個網站,該網站,點擊後,調用下面的JavaScript(其他中)在複製剪貼板圖標:來自於Chrome/Safari瀏覽器
var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
var elem = document.getElementById(codeID);
var content;
// strip out all html tags and just get the text
if (!hasInnerText) {
content = elem.textContent;
content = content.replace(/\xA0/g,' ');
}
else { // ie check
content = elem.innerText;
}
這在IE和Firefox中運行良好,但在Safari和Chrome中無法運行。我認爲這與他們的「Webkit」性質有關。最終發生的是我得到了格式不正確的空格。我無法用其他方式解釋它。複製剪貼板用於代碼示例,並在IE和Firefox中複製代碼編譯。在Safari/Chrome中,它沒有。
我的假設是content.replace
沒有正確完成。是否有另一個更合適的RegEx,我應該做的?
在此先感謝!
編輯:我解決了這個問題。有一個非常奇怪的問題,我不敢相信Chrome/Safari沒有注意到(所以也許我的目標是什麼?)。
我試圖做一個簡單的警告:
// strip out all html tags and just get the text
if (!hasInnerText) {
content = elem.textContent;
alert(content);
content = content.replace(/ /g,' ');
}
出於某種原因血腥不會在Chrome/Safari上。但是,當我在if語句之外拉動警報時,它就起作用了。按照這種思路,我也把外面的content.replace
拉出來,然後瞧,它工作了。我的代碼正在按預期剝離空白。
有人應該向我解釋這是怎麼回事,或者如果這是一個已知的問題。或者,也許正確的人聯繫。
你看過十六進制查看器中的非編譯文件嗎? – Svante 2009-11-17 23:46:37
是的,空格字符的值爲'20'。有趣的是一些文件使用 和其他 。檢查或者並不能解決問題。 – GJTorikian 2009-11-18 00:28:01