2014-03-31 63 views
1

我正在用js插入內容,其中包括對函數的onclick調用。該函數傳遞一個包含數據庫條目的參數,該數據庫條目可能包含'傳遞單撇號的Javascript參數

var action = '<a href="#" class="facebook-share" onclick="facebookWallPost(\' '+name+'\')">Share</a>'; 

問題是,當名稱包含單個撇號時,它會中斷函數調用。我試過用名稱替換'替換爲&#39;,但這似乎仍然被瀏覽器轉換回'

任何想法如何解決這個問題?

+0

Escape with斜槓? '\''? –

+0

可能的重複:[Javascript轉義引號](http://stackoverflow.com/questions/2004168/javascript-escape-quotes)? –

回答

1

使用escape()或JavaScript 1.5版後。改爲使用encodeURI()或encodeURIComponent()。

+0

乾杯,我用escape來傳遞它,然後在函數中使用unescape()。 – user3429445

0

不要通過將字符串與其他代碼混合在一起編寫代碼。您在JavaScript內部的JavaScript內部存在JavaScript,這是令人頭疼的祕訣。

改爲使用DOM操作。

var a = document.createElement('a'); 
a.href = "#"; // You should use a button instead of a link to the top of the page 
a.className = "facebook-share"; 
a.addEventListener('click', function() { 
    facebookWallPost(name); 
}); 
a.appendChild(
    document.createTextNode('Share'); 
);