在 php echo 中打印一个 javascript 变量


Printing a javascript variable in php echo

澄清一下:

我有一个回声声明如下:

 $striptitle .= ' - <a onclick="getnewurl();" href="'.SGLink::album($aid). '">'. $namek .'</a></h1>
<a href="https://twitter.com/share" class="twitter-share-button" data-lang="en" data-via="jb_thehot" data-text="Pictures of '. $hashfinal .'" teens>Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>';
echo $striptitle ;

onclick执行以下操作:

<script type="text/javascript">
function getnewurl()
{
var url = document.URL;
alert( url );
}
</script>

我本质上需要的是将我的锚标记添加 data-url="INSERT_VAR_URL_HERE"

这可能吗?

如果这还不够清楚,请告诉我谢谢!

编辑:澄清一下,函数中的警报仅用于测试。我需要的是能够在同一个$striptitle变量中使用函数中获得的变量。

我的问题是 url 会随着 AJAX 而更改,并且 Twitter 按钮的数据 url 不会更新。我希望能够通过每次点击时获取新网址来获取新网址。如果有其他方法可以做到这一点,我愿意接受建议!

为什么不把它作为参数传递呢?

$striptitle .= " - <a onclick='"getnewurl('URL-HERE');'"...>";

然后在脚本中:

<script>
    function getnewurl(url) {
        alert(url);
    }
</script>

基于@Kolink的答案,一种不在两个地方重复网址的方法,您可以将链接生成为:

<a onclick="getnewurl(this);" href="...">

那么你的JS可能看起来像:

function getnewurl(link) {
    link.setAttribute('data-url', location.href);
}

编辑显然jQuery.data没有正确更新 dom,但 setAttribute 确实