window.open无法正常工作,解析URL被截断

时间:2018-10-14 19:02:11

标签: javascript php url window.open

我正在尝试使链接在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 :(得分:1)

您需要转义双引号:

$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>';

答案 1 :(得分:1)

  • 您正在使用'(单引号)在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 :(得分:0)

为简单起见,将其分为两行

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

OR

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