2012-08-27 19 views
5

何をしようとしているのか Internet Explorerのブラウザのタブでウェブサイトを開いてリンクをクリックすると、タブと同じブラウザでpdfページのinit ... pdfページにはリンクがたくさんあります。もしそれらのいずれかをクリックしようとすると、あなたは古いタブに戻り、どこからでもpdfを開いて保存することができますそれらの2つのタブ間の切り替えだけ 私はアイデアが明確であることを願って..これをHTMLとJavaScriptを使用してしようとしている...これは私が書いたが、まだ多くはここに欠けている。任意の助けを事前に感謝はこの作品がここで再び、私は内蔵のPDFファイルを持っている。このファイルはjavascriptとhtmlを使用してブラウザでのみ同じ2つのタブを切り替える

<html> 
<head> 
<script> 
function son() 
{ 

myWindow=window.open('','','width=500,height=500'); 
myWindow.document.write(" SON !"); 
myWindow.focus(); 
myWindow.opener.document.write("<p> DAD !</p>"); 
} 
</script> 
</head> 
<body> 

<input type="button" value="Open " onclick="son()" /> 

</body> 
</html> 

<object data="Test.pdf" type="application/pdf" width="100%" height="100%"> 

<p>It appears you don't have a PDF plugin for this browser. 
you can <a href="Test.pdf">click here to 
download the PDF file.</a></p> 

</object> 

おかげ

別ウィンドウで別の瞬間をランチ

を提供しました
+0

JavaScriptを使用してスイッチを別のタブまたはウィンドウに強制することはできません。 – zzzzBov

+0

開かれたページがWebページだった場合、 'postMessage'でこれを行うことができます(ただし、タブを切り替えることはできません)。しかし、PDFではできないと思われます。 – apsillers

+0

@zzzzBov iframeにpdfを入れようとしても – ALG

答えて

1

JavaScriptにタブを制御するAPIがありません。したがって、あなたはそれを行うことはできません。

ウィンドウを開くことはできますが、ウィンドウをタブまたはウィンドウにするかどうかは制御できません。

+0

フレームにpdfファイルを置くとできます – ALG

+0

どのようにフレームに何かを入れても、JavaScriptがタブを制御できないという事実は変わりますか?タブを切り替えるためのネイティブJavaScript関数を1つ指定できますか? ページ内でブラウザのタブまたはタブを参照していますか? – Joe

+0

ブラウザのタブ@joe – ALG

5

昔は、ウィンドウのfocusメソッドを使用して、ウィンドウ/タブを前面に表示することができました。しかし、(主に広告主のポップアップウィンドウの形の)濫用は、その機能を制限または無効にするブラウザをもたらしました。

PDF部分を無視すると、これは概念的には非常に簡単な要求です。まず、ウィンドウを開き、その参照を保持:二次ページで

var pop = window.open('page.html'); // opens in new tab on most browsers 

を、元に切り替えるのは簡単だった:

window.opener.focus(); // no longer works in most modern browsers 

そして、スイッチバックするには、最初のページから:

pop.focus(); // might work 

my testでは、IE 9またはChrome 21でオープナーのタブに戻ることができませんでした。 Chromeでは、2番目のページを開き、手動で元のタブに戻って、pop.focus()に電話をかけて2番目のタブのフォーカスを戻しました。 (IEは何もしませんでした)私は二次的なページからwindow.opener.alert('...');を呼び出すことによってChromeをオープニングページに強制的に戻すことができましたが、それは醜いハックです。

これは、少なくとも確実にはこれを引き抜くことができないようです。

私はあなたが達成しようとしているもの(目次)を正確には分かりませんが、2つのウィンドウを開くことを考えましたか?画面の左側をカバーするリンクを開き、残りの半分をPDFで開きます。

+0

私はTOCの簡単な例を教えてくれるので、私に説明しようとしているものを吸収することができます。それは事前に大きな助けになるでしょう。 – ALG

+0

Joshは "オープナー"それで、それはまったく動作しません。あるいは、ちょうどopener.focusですか?再度ありがとう – ALG

+0

目次目次。 'window.opener'は動作しますが(現在のウィンドウを開いたウィンドウの' window'オブジェクトを指しています)、 'focus'メソッドは自動的に失敗します。 – josh3736

1

もう1つの可能性は、第2のウィンドウまたはタブを開かないことです。 現在のウィンドウまたはタブで別の/置き換えページを開いた場合は、 を使用して、履歴オブジェクトを使用して2つのページを切り替えることができます。

history.go(-1); //takes you back to previous page 
history.go(1); //takes you forward to the page from which you went back. 
関連する問題