0

インターネットやこのサイトでも検索しましたが、答えが見つかりませんでした。私のサイトの記事を調べて、それらのいくつかを選択して印刷する JavaScript コードを実行したいと思います。この記事の後にスクリプトを実行すると、スクリプトはうまく機能します。

【スマートフォン関連記事】

【スマートフォンに関する記事の一部を表示(印刷)するスクリプト】

明らかに、スクリプトには検索対象があるため、正しく機能します。記事はサイトに既に表示されているため、javascript はいくつかの要素を取ることができます。

しかし、私は順序を逆にしたい:

【スマートフォンに関する記事の一部を表示】

【スマートフォンに関する記事を表示】

記事が読み込まれた後にスクリプトを実行し、スクリプトによって印刷された要素の位置を変更する必要があると思います。position: absolute; でそれを行うことができます。しかし、私にはあまりエレガントに見えません。私の問題を解決する別の方法があることを願っています。別の場所でボディのオンロードと実行機能を試しましたが、うまくいきませんでした。

助けと提案をありがとう:)

4

2 に答える 2

0

スクリプトで何をしようとしているのかは完全には明らかではありません。スクリプトは、スクリプトの後にロードされる DOM 要素を参照できません。したがって、それがあなたがやろうとしているのであれば、それらの DOM 要素が読み込まれた後にスクリプトを配置するか、それらの要素が読み込まれるまで待ってから実行する必要があります。

既存の DOM 要素の順序を変更したいだけの場合は、ページ レイアウト フローでremoveChildandappendChildまたはを使用して DOM 要素の位置を変更し、順序を変更できます。insertBefore

閲覧者に元の順序が表示されないようにする場合は、記事が最初は表示されないように初期 CSS ルールを設定してから、記事を並べ替えて表示できるようにすることができます。視聴者には最終的な注文のみが表示されます。

より具体的なアドバイスが必要な場合は、実際のコードを提示して、実際に実行されていることを確認して、より具体的にアドバイスできるようにすることをお勧めします。

于 2012-07-06T08:56:48.230 に答える
0

いくつかの記事を再表示するための HTML コードを生成するために document.write を使用していると思います。document.write は使用しないでください。代わりに、ドキュメントの最後にスクリプトを配置して、すべての HTML 要素が既に DOM に存在していることを確認してください。次に、div などの新しい HTMLNode を作成し、必要な場所に配置するか、DOM から 1 つを選択して新しい HTML をそのノードに配置します (最も簡単な方法は set ですinnerHTML)。例えば:

<body>
  <div id="some_articles">
  </div>
  <div id="all_articles">
    <!--- here is the code for all articles -->
  </div>
  <script>
    var div = document.getElementById('some_articles');
    div.innerHTML = '<!-- code for some of the articles -->';
  </script>
</body>

ただし、これは非常に基本的な Javascript の知識です。Javascript および DOM プログラミングに関する優れたチュートリアルまたは本を実際に読む必要があります。

于 2012-07-06T09:00:00.157 に答える