2017-01-03 86 views
-2

如果我使用JS創建一個新窗口/ tweet分享,我是否也可以從本地存儲中獲取信息?是否可以將本地存儲值加載到推文中?

<li class="fa fa-twitter" onclick="window.open('https://twitter.com/intent/tweet?text=I just score X on this game!', 'newwindow', 'width=300, height=250')"></li> 

我們目前存儲用戶在localStorage的得分與score值。我們甚至在頁面上打印它。會不會把它上傳到推文中?

到目前爲止,我已經嘗試使用跨度,並追加得分,但是這打破了URL。

任何想法?

+0

什麼是破損的URL的樣子?注入字符串可能會導致一些URL轉義問題 –

回答

3

您可以添加值使用串聯:

<li class="fa fa-twitter" onclick="window.open('https://twitter.com/intent/tweet?text=I just score ' + localStorage['score'] + ' on this game!', 'newwindow', 'width=300, height=250')"></li> 
+0

對不起,試圖接受這個,但後來它說SO因維護而停機。這解決了我的問題!非常感謝! –

0

內聯JS是可怕:)

試試這個

<li class="fa fa-twitter" onclick="onClick"></li> 

function onClick(){ 
    var val = localStorage.get('something'); 
    window.open("https://twitter.com/intent/tweet?text=I just score X on this"+val+" game!', 
    'newwindow', 
    'width=300,height=250') 
} 
0

是的,你可以肯定做到這一點。我不會爲此使用內聯onclick屬性。簡單地說,添加事件監聽器,然後打開窗口,用戶分數從localStorage以及您的文本。

<li class="fa fa-twitter" id="tweet"></li> 
<script> 
$('#tweet').on('click', function(e){ 
    var score = localStorage.getItem('userScore'); 
    var tweetTxt = 'I just scored ' + score + ' on this game!'; 
    window.open('https://twitter.com/intent/tweet?text='+encodeURIComponent(tweetTxt), 'newwindow', 'width=300, height=250') 
}); 
</script> 
0

保持清晰和簡單。

tweetScore = function() { 
 
    var score = localStorage.getItem('score'); 
 
    var text = 'I just score '+ score + ' on this game!'; 
 
    /* var options = 
 
    { width: 300; height:200, ... } 
 
    */ 
 
    var url = 'https://twitter.com/intent/tweet?text='+text; 
 
    
 
    window.open(url, 'newwindow', 'width=300,height=200'); 
 
    // or fetch them from options 
 
    return 0; 
 
}
<li class="fa fa-twitter" onclick="tweetScore()"> 
 
    tweet 
 
</li>

順便說一句,你也可以單獨的URL從tweetScore()功能形成。

urlCreator = function(foo) { 
//some operations 
//var url = foo+.. 
return url; 
} 

然後用它的返回值在tweetScore()

tweetScore = function() { 
    var score = localStorage.getItem('score'); 
    var text = 'I just score '+ score + ' on this game!'; 
    /* var options = 
    { width: 300; height:200, ... } 
    */ 
    var url = createUrl(text); 
    ... 

您還可以通過傳遞參數,擴展它 - 這將讓你鳴叫很多東西,而不僅僅是分數。

tweetThis(arg1) { 
    //process arg1 
    //createUrl 
} 
相關問題