如果我使用JS创建一个新的窗口/推文来分享,我是否可以从本地存储中提取信息?
<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
。我们甚至在页面上打印它。是否会将其上传到推文中?
到目前为止,我已尝试使用跨度,并附加分数,但这会破坏网址。
有什么想法吗?
答案 0 :(得分: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>
答案 1 :(得分: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')
}
答案 2 :(得分: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>
答案 3 :(得分: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>
顺便说一句,你也可以分开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
}