我可以这样做:
<a href="#" id="thelink" onclick="window.parent.OpenVote("<? echo $_GET['id']; ?>", '<? echo $rowData['username']; ?>');">
它似乎无法工作..
答案 0 :(得分:1)
你可以,但你需要使用单引号传递一个参数,否则你将逃脱onclick属性。
<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');">
答案 1 :(得分:1)
第一个问题是onclick属性值内的引号。你要么必须使用"
对它们进行html编码,要么使用撇号:
<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');">
然后你必须考虑你在代码中放置的值。
首先,您必须对值进行编码,以便它们可以是Javascript代码中的字符串文字。如果它们中可以有任何反斜杠字符,你必须用双反斜杠替换它们,然后如果它们中可以有任何撇号,你必须通过在它们前面加一个反斜杠来逃避它们(即用反斜杠替换每个撇号和撇号)。
然后,您必须对整个脚本进行编码,以使其可以是HTML标记中的值。由于在静态代码中没有需要转义的字符,因此您只需要编码放在代码中的值。您必须对值进行HTML编码,以便将<
,>
,&
和"
等任何字符替换为HTML实体。
答案 2 :(得分:0)
可能是由于onclick声明中的额外引号。
尝试使用单引号替换id参数周围的双引号:
<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');">