是否可以将本地存储值加载到推文中?

时间:2017-01-03 19:26:49

标签: javascript jquery twitter local-storage

如果我使用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。我们甚至在页面上打印它。是否会将其上传到推文中?

到目前为止,我已尝试使用跨度,并附加分数,但这会破坏网址。

有什么想法吗?

4 个答案:

答案 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
}