33

現在のホスト名に基づいて、Javascriptでページのベースhref属性を設定したいと思います。異なるホスト名で表示できるHTMLページを生成しました。つまり、ベースhrefタグの生成は、一方のホスト名では機能しますが、もう一方のホスト名では正しくありません。

4

4 に答える 4

42

これを行う正しい方法は、現在のホスト名に基づいてタグの document.write を実行することです。

正しい:

<script type="text/javascript">
document.write("<base href='http://" + document.location.host + "' />");
</script>

このメソッドは、IE、FF、Chrome、および Safari で正しい結果を生成しました。以下を実行する場合とは (正しい) 異なる結果が生成されます。

正しくない:

<script type="text/javascript">
var newBase = document.createElement("base");
newBase.setAttribute("href", document.location.hostname);
document.getElementsByTagName("head")[0].appendChild(newBase);
</script>
于 2010-08-16T16:04:00.493 に答える
13

こうすればいいと思う

    <script type="text/javascript">
        document.head.innerHTML = document.head.innerHTML + "<base href='" + document.location.href + "' />";
    </script>

Aslocation.hostnameはアプリケーション コンテキスト ルートを返しません! document.locationコンソールに をログオンして、 でconsole.log利用可能なすべてのメタデータを表示することもできますdocument.location

于 2017-06-11T01:21:37.077 に答える
3
document.write("");

<script>
document.write("<base href='"+ window.location.protocol +'//' + window.location.host + "' >");
</script>

于 2016-08-26T04:29:04.290 に答える