プロが教えるわが家の防犯対策術!

SNSボタン(ツイッター・フェイスブック・mixiチェック・google+)を配置したいのですが、
ページ数が膨大になる想定の為、現在のページのURLを自動的に取得し、HTMLに代入させたいと思っています。

<script type="text/javascript">
var url = location.href;
</script>

変数urlの値を、下記HTMLの http://◯◯◯◯◯◯◯◯◯◯◯◯◯/ の箇所に、
代入したいだけなのですが、調べても方法が分かりませんでした。

<div id="sns" class="sns">
<ul class="sns_box">
<li class="twitter-button">
<a href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-url="http://◯◯◯◯◯◯◯◯◯◯◯◯◯/">ツイート</a>
</li>
<li class="facebook-button">
<iframe src="http://www.facebook.com/plugins/like.php?href=ht …◯◯◯◯◯◯◯◯◯◯◯◯◯/&amp;layout=button_count&amp;show_faces=true&amp;width=110&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:21px;" allowTransparency="true"></iframe>
</li>
<li class="mixi-btn">
<a href="http://static.mixi.jp/share.pl" class="mixi-check-button" data-button="button-1" data-url="http://◯◯◯◯◯◯◯◯◯◯◯◯◯/">チェック</a><script type="text/javascript" src="http://static.mixi.jp/js/share.js"></script>
</li>
<li class="google-btn">
<div class="g-plusone" data-size="medium" data-href="http://◯◯◯◯◯◯◯◯◯◯◯◯◯/"></div>
</li>
</ul>
</div>

シンプルに値の代入は可能でしょうか?
お手数ですが、ご教示頂けると幸いです。。。

A 回答 (2件)

<a href="

https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-url="http://◯◯◯◯◯◯◯◯◯◯◯◯◯/">ツイート</a>
  ↓
<script type="text/javascript">
<!--
(function(){
var element=document.createElement("a"); //aタグ生成
element.setAttribute("href","https://twitter.com/share"); //属性を設定
element.setAttribute("class","twitter-share-button");
element.setAttribute("data-lang","ja");
element.setAttribute("data-url",url); //URLはここで設定
element.appendChild(document.createTextNode("ツイート"));
document.write(element.outerHTML); //aタグのHTML書き出し
})();
//-->
</script>
というような方法しか思いつかないですね……。

ちなみに、
<script type="text/javascript">
<!--
document.write('<a href="https://twitter.com/share" class="twitter-share-button" data-lang="ja" data-url="' + url + '">ツイート</a>');
//-->
</script>
とするとセキュリティホール(DOM-Based XSS)を作ることになるのでNGです。


>>#1
> <div・・・・・data-href=url>
> とすればいいでしょう。
残念ながら、そう書くと
 <div …… data-href="url">
と解釈されます。
    • good
    • 0

var url = location.href;


で、必要なurlを取得して、これを「url」という値(変数)と定義しているのですから、

<div・・・・・data-href=url>
とすればいいでしょう。
「url」というのが変数として不適切であれば(私は知りませんが)、
var target
とか別の名前を使ってみたらいかがでしょう
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!