質問

ときに実行を以下の例ではFirefoxをご利用の3:

<html>
 <head>
  <script language="javascript" type="text/javascript">
   <!--
   function openWindow(){
    var w = window.open('', 'otherWin', 'width=600,height=600');
    w.document.write(document.getElementsByTagName("html")[0].innerHTML);
    w.document.close();
    reportLinks(w.document.links);
   }

   function reportLinks(links){
    var report = 'links: '+links.length;
    for (var i=0;i<links.length;i++){
     report += '\n (link='+links[i].href+')';
    }
    alert(report);
   }
  //-->
  </script>
 </head>
 <body>
  <p><a href="javascript: openWindow()">Open Same Content and Show Links Report</a></p>
  <p><a href="javascript: reportLinks(document.links)">Show Links Report</a></p>
 </body>
</html>

まともにネットワークの設計時に表示されるをクリックするショーのリンクを報告書"としてクリックした場合にオープンと同じコンテンツやショーのリンクを報告する2.しかし場合により外部からのJavaScriptファイルを参考にこちらのページからの行動が異なるだけで空のファイルsome.js 場します。をクリックするとオープンと同じコンテンツやショーのリンクを報告"リンク数が0になります。

<html>
 <head>
  <script language="javascript" type="text/javascript" src="some.js"></script>
  <script language="javascript" type="text/javascript">
   <!--
   function openWindow(){
    var w = window.open('', 'otherWin', 'width=600,height=600');
    w.document.write(document.getElementsByTagName("html")[0].innerHTML);
    w.document.close();
    reportLinks(w.document.links);
   }

   function reportLinks(links){
    var report = 'links: '+links.length;
    for (var i=0;i<links.length;i++){
     report += '\n (link='+links[i].href+')';
    }
    alert(report);
   }
  //-->
  </script>
 </head>
 <body>
  <p><a href="javascript: openWindow()">Open Same Content and Show Links Report</a></p>
  <p><a href="javascript: reportLinks(document.links)">Show Links Report</a></p>
 </body>
</html>

であろう問題の負荷のページの一瞬のreportLinks実行されます。なっているのでしょうかは、外部some.js 追加の書類ではありません。完全に構築。ある方法で登録することができますこのreportLinksコonloadイベントが出来上がったと感じていまいます。リンクは完了ですか?

この例では動作する場合はGoogle Chrome.

(追加後answer1)

このようにマルセル-K.無事に卒業できた私は、しばらくは、追加のコードの思いものです。現在の試験では、この簡単な例のように働くFirefoxやChrome.

<html>

 <head>

  <script type="text/javascript" src="some.js"></script>
  <script type="text/javascript">
   <!--
   function openWindow(){
    var w = window.open('', 'otherWin', 'width=600,height=600');
    w.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n'+
       document.getElementsByTagName("html")[0].innerHTML+'\n</html>');
w.onload=function(){
     reportLinks(w.document.links);
    };
    w.document.close();
   }

   function reportLinks(links){
    var report = 'links: '+links.length;
    for (var i=0;i<links.length;i++){
     report += '\n (link='+links[i].href+')';
    }
    alert(report);
   }
  //-->
  </script>
 </head>
 <body>
  <p><a href="javascript: openWindow()">Open Same Content and Show Links Report</a></p>
  <p><a href="javascript: reportLinks(document.links)">Show Links Report</a></p>
 </body>
</html>

またこの簡単な例を示す簡単な場合には、実際のコードでいます。印刷プレビュー画面の複雑なhtmlにしたい全て無効化href一度開かれます。その一つにonloadハンドラがない。たいのですが登録onloadハンドラはこの場合に最も確か。

多くの皆 マルセル-

役に立ちましたか?

解決 2

なだけで上記の例では、作品の携帯以上、Firefox、Chrome、IEが登録しておくことで、onloadリスナーを通じてinlined JavaScriptのHTMLドのポップアップウインドウです。以下の例のコードを示します。

<html>
 <head>
  <script type="text/javascript" src="script.js"></script>
 </head>
 <body>
  <p><a href="javascript: openWindow()">Open Same Content and Show Links Report</a></p>
  <p><a href="javascript: reportLinks(document.links)">Show Links Report</a></p>
 </body>
</html>

このページを採用しスクリプトscript.js ファイルです。以下のコンテンツのファイルです。

function openWindow(){
  var w = window.open('', 'otherWin', 'width=600,height=600');
  w.document.write(
    '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n'+
    document.getElementsByTagName("html")[0].innerHTML+
    '\n <script type="text/javascript">\n'+
    '  function addOnloadListener(listener){\n'+
    '    if (window.addEventListener) {\n'+
    '      window.addEventListener("load", listener, false);\n'+
    '    } else {\n'+
    '      window.attachEvent("onload",listener);\n'+
    '    }\n'+
    '  }\n'+
    '  addOnloadListener(function(){reportLinks(document.links);});\n'+
    ' </script>\n'+
    '</html>');
  w.document.close();
}

function reportLinks(links){
  var report = 'links: '+links.length;
  for (var i=0;i<links.length;i++){
    report += '\n (link='+links[i].href+')';
  }
  alert(report);
}

時の機能addOnloadListenerのJavaScriptファイル(inlinedのページを)うまくいきませんでIE6でいましたように、できめのスクリプトの応募ます。時addOnloadListenerませんでしたinlinedのinlined呼addOnloadListener動作しなかったので、単純な機能の前:

<script type="text/javascript" src="script.js"></script>

をコードするだけの簡単な例ではない。使ったので無効にすべてのリンク印刷プレビューをポップアップのページです。

より簡単な方法での登録をonloadのリスナーをポップアップウィンドウに携帯以上のブラウザには常に歓迎いたします。

おかげさ マルセル-

他のヒント

述べましたようにコメントが、これはとても不思議な課題です。思いの外部スクリプト遅延のページをレンダリングの新しいページとそのDOMない場合がある.プロジェクトを作成する

私の疑いのはその追加につき)(new) defer 属性らしいこれらの問題を解決するために:

このBoolean属性セットを示しているブラウザ、スクリプトは実行される 後に書いての解析が続けられます。

defer 属性を設定することができ、オリジナルページ、また正確なコピーします。設定できれていない場合でも、どこにいてもスクリプトが含まれている(例えば、利用の場合 document.write お付ファイルで 物する場所まで含ます。

として defer はBoolean属性 起動されます。 ときにだけ存在defer 又は大阪大学未来戦略機構(XHTML)指定された値に設定して、自defer="defer").このケースではスクリプトを内包を読む:

<script type="text/javascript" src="some.js" defer></script>

更新 について更新すべりをしながら挿入しDoctypeのメインページの利用を考える HTML5).

と考えていき付けお onload イベントにできます。

しかし、目標を達成したい(印刷プレビューなしでハイパーリンク):にお使いいただけます"印刷" media 属性 スタイルのハイパーリンクのようにテキスト;ことになる 方法 比較的容易なことが利点でものを確認することができますがJavaScriptが無効になっています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top