2017-09-05 14 views
0

私はいくつかのプロジェクトで作業していますが、多くのページを持つかなり大きなサイドバーメニューがあります。すべてのページで常に変更する必要はありませんが、 PHPのinclude()関数を使いたい。 HTML5のサイドバーメニューでのインポート

さて、私は行ってhtml5インポートを使用しました。それは実際には機能しますが、私には問題があります。私のindex.htmlはrootフォルダにありますが、users.htmlはroot/pagesフォルダにあります。だからそこに行くと、index.htmlと同じメニューがインポートされますが、それは間違っています。リンクが壊れているためです。私は../index.html必要があるので、例えば、私は、その後のindex.htmlにアクセスすることはできませんが、代わりにこれは私はそれはファイル

var doc= document.querySelector('link[rel="import"]').import; 
var text = doc.querySelector('template'); 
var clone = document.importNode(text.content, true); 
var loc = window.location.pathname; 
var dir = loc.substring(0, loc.lastIndexOf('/')); 
console.log(dir); 
document.querySelector('.sidebar-menu').appendChild(clone); 

答えて

1

をインポートする必要があります使用しているjsのある index.htmlを書かれていますサイドバーのリンクを相対パスではなく絶対パスに変更すると、どのページからでも作業できます。代わりに:

<a href="/index.html">Home</a> 

正確な絶対パスなど、あなたが/publicフォルダを使用している場合によって異なりますが、あなたは彼らがかつて働いて得れば、彼らはから動作します。この

<a href="index.html">Home</a> 

使用あなたのアプリ内の任意のページ。

+0

私はこれを試しました。しかし、それはちょっとうまくいきませんでした。 –

+0

私はこのページにありました - > http:// localhost:8080/projectN_full/index.html メニューバーで同じページをクリックすると、http:// localhost:8080/index.html –

+0

はい。わかった。ありがとうございました。あなたは私の答えを得るのを助けました:) –

関連する問題