2009-10-06 4 views
2

Учитывая это PHP код:Как закодировать URL как строку javascript в PHP-сгенерированном HTML?

<a onclick="javascript:window.location.href='<?php echo $url;?>'" 

Что делать, если есть в $ URL '?

Я пробовал использовать json_encode($url), но он не сможет справиться с этим.

+5

Почему вы используете этот ' Gumbo

+0

Если у пользователя нет JS включенного и вы не устанавливаете href, он не будет нигде FYI. –

+3

Потому что это надуманный пример. Я использую его на div фактически. – Misier

ответ

3

json_encode будет работать. Вы просто должны использовать это правильный путь:

<a onclick="javascript:window.location.href=<?php echo htmlspecialchars(json_encode($url)); ?>"> 

Это будет работать, так как json_encode уже возвращает выражение JavaScript в кавычки. И htmlspecialchars необходим, чтобы избежать возможных метасимволов HTML.

+0

Er - в чем смысл использования местоположения в контексте OP? Это какой-то трюк для хранения местоположения в истории браузера при использовании ajax или некоторых странных обстоятельств? –

+3

@meder: Не спрашивайте меня, спросите OP. – Gumbo

+0

Нет, он будет генерировать что-то вроде onclick = "javascript: window.location.href =" blablabla .. "" – Misier

Смежные вопросы