2010-03-01 23 views
1

快速的問題,我可以這樣做:有關的onclick

<a href="#" id="thelink" onclick="window.parent.OpenVote("<? echo $_GET['id']; ?>", '<? echo $rowData['username']; ?>');"> 

它似乎沒有工作..

回答

1

可以,但你需要使用單引號來傳遞參數,否則你會逃避onclick屬性。

<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');"> 
0

可能是由於onclick語句中的額外引號引起的。

嘗試用單引號替換周圍的ID PARAM雙引號:

<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');"> 
1

的第一個問題是onclick屬性值中的引號。您可能已使用&quot;到HTML編碼,或用省略號代替:

<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');"> 

然後,你必須考慮你把代碼中的值。

首先,您必須對值進行編碼,以便它們可以是Javascript代碼中的字符串文字。如果在它們中可以有任何反斜線字符,則必須用雙反斜槓替換它們,然後如果它們中可以有任何撇號,則必須通過在它們前面加一個反斜槓來將它們轉義(即將每個撇號替換爲反斜槓和撇號)。

然後,您必須對整個腳本進行編碼,以便它可以是HTML標記中的值。由於在靜態代碼中沒有需要轉義的字符,因此只需對代碼中輸入的值進行編碼。您必須對HTML值進行編碼,以便將任何字符(如<,>,&")替換爲HTML實體。

+0

將'json_encode'與所有'JSON_HEX_'選項集一起使用可以避免以後必須執行單獨的HTML轉義。 – bobince 2010-03-01 21:03:17