быстрый вопрос об онклике - PullRequest
1 голос
/ 01 марта 2010

Могу ли я сделать так:

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

Кажется, это не работает ..

Ответы [ 3 ]

1 голос
/ 01 марта 2010

Первая проблема - это кавычки внутри значения для атрибута onclick. Вы должны либо html кодировать их, используя &quot;, либо использовать вместо них апострофы:

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

Тогда вы должны учитывать значения, которые вы ввели в код.

Сначала вы должны закодировать значения, чтобы они могли быть строковыми литералами в коде Javascript. Если в них могут быть какие-либо символы обратной косой черты, вы должны заменить их двойной обратной косой чертой, затем, если в них могут быть какие-либо апострофы, вы должны избежать их, поставив перед ними обратную косую черту (т.е. замените каждый апостроф обратным слешем и апостроф).

Затем необходимо закодировать весь сценарий, чтобы он мог быть значением в теге HTML. Поскольку в статическом коде нет символов, которые необходимо экранировать, вам нужно только кодировать значения, которые вы ввели в код. Вы должны кодировать значения HTML, чтобы любые символы, такие как <, >, & и ", заменялись на объекты HTML.

1 голос
/ 01 марта 2010

Можно, но вам нужно использовать одинарные кавычки для передачи аргумента, иначе вы избежите атрибута onclick.

<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');">
0 голосов
/ 01 марта 2010

Возможно, из-за дополнительных кавычек в операторе onclick.

Попробуйте заменить двойные кавычки вокруг параметра id одинарными кавычками:

<a href="#" id="thelink" onclick="window.parent.OpenVote('<? echo $_GET['id']; ?>', '<? echo $rowData['username']; ?>');">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...