window.open 无法解析 URL 已截断

window.open not working parse URL truncated

我正在尝试让 link 在 PHP 中作为新的 window 打开,我尝试了以下方法和一些变体,但由于某种原因 links 停在 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>';

双引号需要转义:

$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>';
  • 您正在使用 '(单引号)在 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>';

为了简单起见,分为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;