如何在打开 javascript window 的 href link 中传递 php 变量
how to pass a php variable in a href link with javascript window open
下面的代码可以调用 JS window.open
<?
$facebookID = "ID";
$parameters = array(
'app_id' => 'app_ID',
'to' => $facebookID,
'link' => 'link',
'redirect_uri' => 'my_url'
);
$url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
echo '<script type="text/javascript">window.open('.json_encode($url).');</script>';
?>
上面的代码工作...它打开一个 window 与 facebook 发送 dailog
但是我怎样才能在 link 中实现它,以便仅使用特定的 facebook ID 在点击时调用它 window...
我使用多个 faceboook ID 构建我的页面,如下所示:
<?
// CODE ABOVE.....
while($row = $stmt->fetch())
{
$facebookID = $row['facebookID'];
$parameters = array(
'app_id' => 'app_ID',
'to' => $facebookID,
'link' => 'link',
'redirect_uri' => 'my_url'
);
$url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
?>
<a href="#">ON CLICK CALL the JavaScript for this specefic Facebook User</a>
<?
}
?>
我的 href="....." 应该是什么?我尝试了以下方法,但没有用...我想这是因为 window.open...
中的 php 变量
<a href="javascript: void(0)" onclick="window.open('.json_encode($url).');" </a>
谢谢
试试这个:
echo '<a href="#" onclick="window.open(' . json_encode($url) . '); return false;">ON CLICK CALL the JavaScript for this specefic Facebook User</a>';
您不能在 window.open 内部使用 json 编码并在您的属性中使用双引号,因为 json_encode 会在您的代码中添加双引号。
(看到属性 onclick 是 "fighting",你的双引号来自 window.open)
如果将单引号反 为双引号,使用 json_encode.
即可正常工作
$url = 'http://test.com';
echo "<a href='javascript: void(0)' onclick='window.open(" . json_encode($url) . ");'>Test</a>";
(因为 json 编码会添加双引号,而您的属性有单引号。)
另一种方法(我推荐)
是删除 json_encode 并在 php.
中加上单引号
$url = 'http://test.com';
echo '<a href="javascript: void(0)" onclick="window.open(' . '\'' . $url . '\'' . ');">Test</a>';
下面的代码可以调用 JS window.open
<?
$facebookID = "ID";
$parameters = array(
'app_id' => 'app_ID',
'to' => $facebookID,
'link' => 'link',
'redirect_uri' => 'my_url'
);
$url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
echo '<script type="text/javascript">window.open('.json_encode($url).');</script>';
?>
上面的代码工作...它打开一个 window 与 facebook 发送 dailog
但是我怎样才能在 link 中实现它,以便仅使用特定的 facebook ID 在点击时调用它 window...
我使用多个 faceboook ID 构建我的页面,如下所示:
<?
// CODE ABOVE.....
while($row = $stmt->fetch())
{
$facebookID = $row['facebookID'];
$parameters = array(
'app_id' => 'app_ID',
'to' => $facebookID,
'link' => 'link',
'redirect_uri' => 'my_url'
);
$url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
?>
<a href="#">ON CLICK CALL the JavaScript for this specefic Facebook User</a>
<?
}
?>
我的 href="....." 应该是什么?我尝试了以下方法,但没有用...我想这是因为 window.open...
中的 php 变量<a href="javascript: void(0)" onclick="window.open('.json_encode($url).');" </a>
谢谢
试试这个:
echo '<a href="#" onclick="window.open(' . json_encode($url) . '); return false;">ON CLICK CALL the JavaScript for this specefic Facebook User</a>';
您不能在 window.open 内部使用 json 编码并在您的属性中使用双引号,因为 json_encode 会在您的代码中添加双引号。
(看到属性 onclick 是 "fighting",你的双引号来自 window.open)
如果将单引号反 为双引号,使用 json_encode.
即可正常工作$url = 'http://test.com';
echo "<a href='javascript: void(0)' onclick='window.open(" . json_encode($url) . ");'>Test</a>";
(因为 json 编码会添加双引号,而您的属性有单引号。)
另一种方法(我推荐) 是删除 json_encode 并在 php.
中加上单引号$url = 'http://test.com';
echo '<a href="javascript: void(0)" onclick="window.open(' . '\'' . $url . '\'' . ');">Test</a>';