window.open не работает парсинг URL усечен - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь получить ссылку, чтобы открыть как новое окно в PHP, я попробовал следующее и несколько вариантов, но по какой-то причине ссылки прекращаются в javascript:void(window.open(
Есть идеи?Может ли быть что-то не так с '""'?

$html .= '<a class="ficha_partido_popup" href="javascript:void(window.open("/servicios/deporte/partidos/fichapartido_'.$filaPartido["partidocod"].'.html"))" rel="nofollow" title="Ver Ficha del partido"><img src="/imagenes/ficha.png" alt="Ver la ficha del partido" /></a>';

Ответы [ 3 ]

0 голосов
/ 14 октября 2018
  • Вы используете ' (одинарная кавычка) для создания строки в PHP.
  • Вы используете " (двойная кавычка) для создания строки в Javascript.

Теперь вы говорите href="...window.open("...")".Проблема в том, что вы пытаетесь вложить " в ", и это просто ломает все это.Таким образом, первая двойная кавычка внутри window.open заканчивается закрывающей двойной кавычкой для href, а остальная часть строки просто становится недействительной в javascript.

Чтобы исправить это, вы можете заменить вложенные двойные кавычки одинарными кавычками искажем href="...window.open('...')", за исключением того, что вы не можете этого сделать, так как, если вы используете здесь одинарные кавычки, вы в конечном итоге нарушите все в PHP, поскольку вы используете одинарные кавычки для формирования строки в PHP.

Итак,используйте одиночные вложенные кавычки, но избегайте их, например, -

href="...window.open(\'...\')"

Итак, ваш код теперь станет -

$html .= '<a class="ficha_partido_popup" href="javascript:void(window.open(\'/servicios/deporte/partidos/fichapartido_'.$filaPartido["partidocod"].'.html\'))" rel="nofollow" title="Ver Ficha del partido"><img src="/imagenes/ficha.png" alt="Ver la ficha del partido" /></a>';
0 голосов
/ 14 октября 2018

Для простоты разделите его на 2 строки

$window_link = 'window.open("/file_path/filename_'.$filaPartido["partidocod"].'.html")';
$html .= '<a href="javascript:void( ' . $window_link . ' )" >Any link</a>';

ИЛИ

$link = $filaPartido["partidocod"];
$html .= <<<HTML
<a href="javascript:void( window.open('/file_path/filename_{$link}.html') )" >Any link</a>
HTML;
0 голосов
/ 14 октября 2018

Вам нужно экранировать двойные кавычки:

$html .= '<a class="ficha_partido_popup" href="javascript:void(window.open(\"/servicios/deporte/partidos/fichapartido_'.$filaPartido["partidocod"].'.html\"))" rel="nofollow" title="Ver Ficha del partido"><img src="/imagenes/ficha.png" alt="Ver la ficha del partido" /></a>';
...