2012-06-08 32 views
1

澄清:打印在PHP回声一个javascript变量

我有回音声明如下:

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

我需要的本质是加入我的锚标记数据-URL =“INSERT_VAR_URL_HERE”

这可能吗?

让我知道这是不够明确 谢谢!

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

我的问题是,URL与AJAX的变化,以及Twitter的按钮的数据链接没有更新。我希望能够通过每次点击时获取新网址。如果还有其他方法可以做到这一点,我乐于接受建议!

+0

我不是100%确定你想达到什么,为什么你需要设置'data-url'属性? – tobyodavies

+0

刚刚编辑我的问题,让我知道如果它不够清楚! – Sherif

+0

你在你编辑的第一部分所描述听起来很显然是不可能的---你想使用一个JS变量只存在于客户端和PHP已经完成了在服务器上运行PHP执行之后。做你想做的事就需要时间机器。 – tobyodavies

回答

0

为什么不把它作为一个参数?

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

我应该提到@Kolink,该警报仅用于测试目的并且正在消失。我是否仍然需要在我的函数中使用document.URL设置变量url? – Sherif

+0

那么我会如何将它传递给data-text =“variablehere”? – Sherif

+1

将'this'作为参数传递,然后通过'getAttribute(“data-text”)'获得它的属性。 –

0

大厦@ Kolink的回答一个不重复的URL在两个地方,你可以生成链接的方式:

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

然后

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

那么你JS可能看起来像:

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

EDIT显然jQuery.data不正确更新dom,但setAttribute确实

+0

谢谢,但这不完全是我的问题。我编辑了我的问题以供进一步澄清! – Sherif

+0

再次感谢您的更新,数据网址似乎根本没有更新:/这整个事情是试图解决我的主要问题;人们使用AJAX离开原始网址,因此推文计数和网址仍然共享原始网址,而不是最新的网址。有关于此的任何想法? – Sherif

+0

这段代码应该解决你的问题---'data-url'将在DOM中更新。 (尽管显然原始的html不会改变,但这不会有什么影响) – tobyodavies