- 締切済み
JSの変数をHTMLに渡す方法
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=http://◯◯◯◯◯◯◯◯◯◯◯◯◯/&layout=button_count&show_faces=true&width=110&action=like&colorscheme=light&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> シンプルに値の代入は可能でしょうか? お手数ですが、ご教示頂けると幸いです。。。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Picosoft
- ベストアンサー率70% (274/391)
<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"> と解釈されます。
- pasocom
- ベストアンサー率41% (3584/8637)
var url = location.href; で、必要なurlを取得して、これを「url」という値(変数)と定義しているのですから、 <div・・・・・data-href=url> とすればいいでしょう。 「url」というのが変数として不適切であれば(私は知りませんが)、 var target とか別の名前を使ってみたらいかがでしょう