2012-06-08 47 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