2017-01-23 8 views
1

のために働いていないと、だから、さまざまなHTMLファイルに含まれているhtmlファイルすなわちsidebar.htmlがあります。スクリプトは、私は、これは<a href="http://www.w3schools.com/howto/howto_html_include.asp" rel="nofollow noreferrer">http://www.w3schools.com/howto/howto_html_include.asp</a> がHTMLに</p> <p>が含まれるように、次の午前付属のhtml

私はsidebar.html

<a id="fbshare" href="" target="_blank"> 
    <img src="https://example1.com/facebook.png" alt="Facebook" /> 
</a> 

にこのような次の共有コードを維持したいが、200の以上のページがあるので、私はそのHTMLページのURLに応じてHREFを載せていきたいと思います。

だから、私はmain.jsに

jQuery(document).ready(function() { 
var share_url = document.URL;  

document.getElementById("fbshare").href = 'http://www.facebook.com/sharer.php?u=' + share_url; 
}); 

をこのスクリプトを使用していますが、これは私のhtmlページ

<!DOCTYPE html> 
<head> 
</head> 
<body> 
    <header w3-include-html="header.html"></header> 

    <main> 

     <div id="main-slider" class="carousel slide carousel-fade" data-ride="carousel"> 
      <div class="container">     
        <aside class="col-md-3 col-sm-4" w3-include-html="sidebar.html"></aside> 

       </div> 
      </div> 

    </main> 
    <footer w3-include-html="footer.html"></footer> 


    <script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="js/bootstrap.js"></script> 
    <script type="text/javascript" src="js/owl.carousel.js"></script> 
    <script type="text/javascript" src="js/w3data.js"></script> 



    <script> 
     w3IncludeHTML(); 
    </script> 
    <script type="text/javascript" src="js/main.js" defer></script> 
</body> 
</html> 

の一つのためのコードである。しかしHREFを書くためのスクリプトが動作していません。 。

私はGEに

+0

あなたは簡単にjQueryを使って含み行うことができます['.load()'](http://api.jquery.com/load/)関数を使用してください。 'w3data.js'ファイルを含める必要はありません。 – War10ck

+0

それは最高のオプションです。しかし、私はw3data.js経由でそれを行う場合は動作しません – user7459842

+0

@ user7459842フレンドリーアドバイス、w3data.jsについて忘れて... –

答えて

1

使用window.location.hrefを助けるこのしなさいに立ち往生しています現在のページのURLはあなたです。次に、要素にhref属性を設定することができます。

このお試しください:

jQuery(document).ready(function() { 
var share_url = window.location.href;  

document.getElementById("fbshare").setAttribute('href','http://www.facebook.com/sharer.php?u=' + share_url); 
}); 

EDIT:あなたが使用しているW3ライブラリをチェックアウトした後

を、非常に限られており、あなたがそれを使用しないで検討すべきであると思われます。コンテンツの読み込み時にコールバックを実行する機能はありません。したがって、main.jsが処理される時点で、要素はaがまだロードされていない可能性があります。しかし、あなたはjQueryを使っているので、.load関数を使うことができます。そのように:

$("header").load("header.html", function() { 
    $(this).find('a').attr('href', 'http://www.facebook.com/sharer.php?u='+window.location.href); 
}); 

そしてもちろん、headerからincludeディレクティブを(そして他人からだけでなく、必要に応じてそれらすべてをロードするためのロード機能を使用)を削除

+0

1つの場所で 'share_url'だけを使用し、変数とインライン' window.location.href'を取り除いてください... – War10ck

+0

@アダムウォルスキーはすばやい返事をしてくれてありがとう..私はそれを試しましたが、私はこのエラーを受けていますUncaught TypeError :ヌルのプロパティ 'setAttribute'を読み取ることができません – user7459842

+0

これは、ヘッダーがDOMにまだ読み込まれていないようです。 –

関連する問題

 関連する問題