4

「MortenのJavaScriptツリーメニュー」を使用しているサイトを変更して、AdobeReaderプラグインを使用して設定されたフレームにPDFを表示しようとしています。

iPadではフレームが役に立たないので、PDFを新しいタブで開きたいと思います。ツリーメニューをいじりたくないので、ビューアフレームで開いているWebページでJavaScriptを使用して、PDFで新しいタブを開くことができると思いました。

$(document).ready(function()でwindow.open()を使用して新しいタブでPDFを開きます。問題は、window.open()がiPadで機能したくないということです。

HTMLの本文は通常次のようになります...

<body>
    <object data="MypdfFileName.pdf#toolbar=1&amp;navpanes=1&amp;scrollbar=0&amp;page=1&amp;view=FitH" 
    type="application/pdf" 
    width="100%" 
    height="100%">
    </object>
</body>

私はそれをこのようなdivだけを持つように変更しました...

<body>
    <div class="myviewer" ></div>
</body>

次に、次のスクリプトを使用しました...

$(document).ready(function() {
    var isMobile = {
        Android : function() {
            return navigator.userAgent.match(/Android/i) ? true : false;
        },
        BlackBerry : function() {
            return navigator.userAgent.match(/BlackBerry/i) ? true : false;
        },
        iOS : function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
        },
        Windows : function() {
            return navigator.userAgent.match(/IEMobile/i) ? true : false;
        },
        any : function() {
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
        }
    };

    if(isMobile.any()) {
        var file = "MypdfFileName.pdf";
            window.open(file);
    }else {
        var markup = "<object   data='MypdfFileName.pdf#toolbar=1&amp;navpanes=1&amp;scrollbar=0&amp;page=1&amp;view=FitH' type='application/pdf' width='100%' height='100%'></object>";
        $('.myviewer').append(markup);
    };
});

iPadのwindow.open()を除いて、すべてが機能します。widow.open()を切り替えると、コンピューターで正常に動作します。別のプロジェクトでは、iPadでonclick関数からwindow.open()を正常に使用しています。

タイマー機能を使ってみました。また、divにonclick関数を追加して、クリックイベントを投稿してみました。どちらの場合も、彼らはコンピューターで動作しましたが、iPadでは動作しませんでした。私は困惑しています。

ツリーメニューフレームでiPadを処理する方が理にかなっていることはわかっていますが、そのコードは非常に複雑なので、onclickイベントをどこに配置/変更するかがわかりません。

新しいタブで開くようにオブジェクトを変更する方法はありますか?

フレーム内のページを開く代わりに新しいタブでPDFを開くように、クリックイベントを変更する方法を教えてくれるMortens Tree Menuコードに精通している人はいますか?

ありがとう

4

2 に答える 2

3

おそらくSafariはポップアップをブロックしようとします。つまり、ユーザーがクリックしてアクションを実行すると、window.openは機能しますが、「発生」したときは機能しません。

于 2012-06-03T22:38:22.230 に答える
0

また、要素と親要素をチェックし、そこに「:hover」疑似クラスがないことを確認する必要があります。「クリック」イベントが発生することを期待してその要素に触れると、要素のホバー状態がトリガーされます。もう一度タッチすると、クリックイベントが発生します。

于 2013-12-10T22:49:45.403 に答える