1

そこで、次のような一連のdivを生成したいときに、innerHTMLを使い始めました。

<div id="123233"></div>
<div id="123234"></div>
<div id="123235"></div>

今、私はこれらのdivに直接リンクしたいことに気づきました。

例:www.example.com/page#123234

私はいくつかのシナリオを発見しました。

  1. www.example.com/page#123234に直接アクセスすると、#123234が存在しないかのように動作します。
  2. 最初にwww.example.com/pageにアクセスしてから、URLに#123234を追加すると、希望どおりに機能します。
  3. www.example.com/page#123234にアクセスしてから、同じURLに再度書き込むと、機能しません。
  4. シナリオ2を実行してからページをリロードすると、同じ位置に留まります。
  5. シナリオ2を実行して、同じURLに再度書き込むと、機能しません。

だからこれを念頭に置いて、私は私の質問があります...

innerHTMLによって生成されたdivに直接リンクするにはどうすればよいですか?

追加情報:

リンクをどこからでも機能させたいです。外部ドメインまたはwww.example.com/startpageのような別のページである可能性があります。

4

2 に答える 2

1

onloadJavaScriptでは、 innerHTMLを使用できるように、ある種のスクリプトを使用するか、すべてのスクリプトを最後に配置する必要があります。前者を想定します。だからあなたは持っています:

window.onload = function () {
    document.body.innerHTML += "<div id="123233"></div>";
};

ハッシュ(#の後のビット)を更新する行を追加すると、期待する場所までスクロールする必要があります。

window.onload = function () {
    document.body.innerHTML += "<div id=\"123233\"></div>";
    window.location.hash = window.location.hash;
};

ハッシュをすでに設定されているものに設定するだけですが、違いは、設定されたときは有効なハッシュであるのに対し、ページが最初に読み込まれたときはそうではないということです。

于 2012-10-18T09:23:05.487 に答える
1

各要素にIDを割り当てているので、要素が作成された後、クエリ文字列から要素を取得した後、そのIDで要素を見つけ、ページをその場所までスクロールダウンできます。

すでにこの方法で要素を参照しているので、innerHTMLではなくjavascriptコマンドを使用して要素を作成することをお勧めします。

また、私が知る限り、IDはHTML仕様のように文字で始まる必要があります。

于 2012-10-18T09:24:04.543 に答える