2016-07-12 14 views
0

にクリック上の「HREF」にジャンプブートストラップあなたはこの問題を持っていたことがあり:クロームのバグやブートストラップバグ:ドロップダウンがクローム

あなたがブートストラップ(現在のバージョン3.3.6)ドロップダウンメニューをクリックすると、それが展開されますが、同時に、hrefで指定された場所にジャンプします。私はWindows 7のchrome(現行バージョン51)のみでこの問題を抱えています。

公式の例でさえ、私には問題があります。

を参照してください:私はdropdownをクリックした場合 http://getbootstrap.com/components/#nav-dropdowns

を、それがページの最上部であるアンカー「#」にジャンプします。

私はそれを回避する方法がありますが、美しく見えません。

誰もがこのように動作し、どのように優雅にそれを解決するのかを説明することができます。

+0

OSXの最新のバグはありません – epascarello

+0

ブラウザをシークレットモードで起動しますか? – epascarello

+0

@epascarelloシークレットモードではこの問題は発生しません。ドロップダウンはただ拡大します。少し説明できますか? –

答えて

0

OK、自分で説明しましょう。 これはChromeのバグでもブートストラップのバグでもありません。 私の内線のバグです"拖拽搜索"(dragging search) クロームの拡張機能を同期させたので、すべてのラップトップとデスクトップでこの問題が発生しました。

拡張子は主に、ウェブページを右(baidu.comで検索)または左(google.comで検索)にドラッグしてテキストを検索するのに役立ちます。したがって、ドラッグ操作のイベントリスナーが追加されます。

しかし、選択/コピー/右クリック操作など、元のページの制限を解除する別の設計意図もあります。 これを達成するために、あらゆる種類のマウス操作にイベントリスナーを追加し、デフォルトの応答をevent.returnValue = trueとすることで利用可能にします。

コードのクリップ:私のドロップダウン(ともタブが)クリックで離れてジャンプする理由

document.ondragstart = function() { 
     event.returnValue = true; 
     return (true); 
    }; 
    document.oncontextmenu = function() { 
     event.returnValue = true; 
     return (true) 
    }; 
    document.onselectstart = function() { 
     event.returnValue = true; 
     return (true) 
    }; 
    document.onclick = function() { 
     event.returnValue = true; 
     return (true) 
    }; 
    document.onmousedown = function() { 
     event.returnValue = true; 
     return (true) 
    }; 
    document.onmouseup = function() { 
     event.returnValue = true; 
     return (true) 
    }; 
    document.onbeforecopy = function() { 
     return (true) 
    }; 
    document.onbeforecut = function() { 
     return (true) 
    }; 
    document.oncopy = function() { 
     event.returnValue = true; 
     return (true) 
    }; 

それは明らかです。 ブートストラップのドロップダウンとタブでは、タグをhrefと使用しています。 デフォルトの動作では、ブートストラップによって防止されるhrefにジャンプします。 この拡張機能はデフォルト動作を戻します。

私はエクステンションを保持することにしましたが、選択イベントとドラッグイベントのみを保持しました。結果は良いです。

ちなみに、Bootstrapがデフォルト動作(<a>)をドロップダウンしてタブに表示されないようにする方法は誰にでも分かります。