私のアプリケーションでは、従業員からの反復的な作業を続けるので、Webブラウザを使用する必要がありますが、アンカーをクリックした後にIEで新しいウィンドウを開くjavascriptに問題があります。どのように私はそれを開きたいWebブラウザコントロールに "新しいウィンドウを開く"ように指示するのですか?たとえば、他のWebブラウザコントロールでは?ウェブブラウザのコントロールが強制的に同じウィンドウ内のウェブページを開くようにする方法はありますか?
答えて
チェックアウト:proof-of-concept of .NET System.Windows.Forms.WebBrowser module usingソースコードを
そのコントロールについての私の経験は私にこの問題は、次の手順で解決することを試みたことをビジョンを与えている:
は常にNewWindowイベントをキャンセル
catch all linksクリックすると
が、すべてのリンクは、このようにキャッシュすることができるので、私は一般的にDocument Loading Completion
に手動ですべてのタグ
<a>
を解析することを決定していない、このコントロールが非常に悪く、故意にMicrosoftがそうなされています。強力なWebrowser.Document.HtmlDocument周りのツールセットと名前空間があるがMSHTML- それの例は、使用しています
foreach(HtmlElement tag in webBrowser.Document.All) { switch (tag.TagName.ToUpper) { case "A": { tag.MouseUp += new HtmlElementEventHandler(link_MouseUp); break; } } } void link_MouseUp(object sender, HtmlElementEventArgs e) { HtmlElement link = (HtmlElement)sender; mshtml.HTMLAnchorElementClass a = (mshtml.HTMLAnchorElementClass)link.DomElement; switch (e.MouseButtonsPressed) { case MouseButtons.Left: { if ((a.target != null && a.target.ToLower() == "_blank") || e.ShiftKeyPressed || e.MouseButtonsPressed == MouseButtons.Middle) { // add new tab } else { // open in current tab } break; } case MouseButtons.Right: { // show context menu break; } } }
は、最初のリンクでより参照され、それがメインウィンドウのソースコードがあります、ありますそこにさまざまな操作の多く!
場合MouseBUttons.Left
にエラーがあります:
エラー1コントロールは、1ケースラベル( 'ケース 1048576:')からフォールスルーすることはできません別のCに:\ DocumentsとSettings \が今まで私の を\プロジェクト\ Desarrollo \ wApp_SurverMonkey \ wApp_SurverMonkey \ frmNetcare.cs \ Visual Studioの 2005 \ドキュメント64 17 wApp_SurverMonkey
なぜ、このような複雑な答えGuysは?
Private Sub WB1_NewWindow(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles WB1.NewWindow
newUrl = WB1.Url.ToString
e.Cancel = True
WB1.Navigate(newUrl)
End Sub
今、あなたはWB2、または任意の他のWebブラウザーコンポーネントに二行目を変更することがあります。Abatischevは、私はこれを試して、あなたの脳に見て好奇心旺盛なことは興味深いべきである...
たいあなたのOWNフォームの
私は簡単な解決策を見つけました。
private void WebBrowser1_NewWindow(object sender, System.ComponentModel.CancelEventArgs e) {
e.Cancel = true;
WebBrowser1.Navigate(WebBrowser1.StatusText);
}
これは私に多くのお手伝いをしました。 –
ありがとう、このコードは正常に動作します(VS 2015、C#)。今は新しいウィンドウがありません。使いやすく、スニペットは小さいです。 – user2422690
鮮やかな溶液。おかげさまでサム。 – Neophile
- 1. Visual Studioに同じウィンドウ内のエクスプローラからファイルを開くように強制する方法はありますか?
- 2. ウェブブラウザを強制的に閉じる
- 3. iframe内のリンクを強制的に新しいウィンドウで開く方法はありますか? iframeの内容が別のドメインにある
- 4. vb6コントロールを強制的に再描画する方法はありますか?
- 5. ウェブブラウザでテキストを開くようにExcelを強制するには?
- 6. ウェブブラウザのコントロールでIframe内のウェブページのクロスドメインを取得する方法はありますか?
- 7. ブラウザで開くのではなく、別のファイルタイプを強制的にダウンロードする方法はありますか?
- 8. ユーザがリンクをたどった後にウェブページを強制的にリロードする方法はありますか?
- 9. 親ウィンドウで開くようにiframe submitを強制する
- 10. 式で同じ値を返すようにMath.randomで関数を強制する方法はありますか?
- 11. ios 4アプリを強制的に閉じて再度開く方法はありますか?
- 12. WPFにコントロールの再検証を強制する方法はありますか?
- 13. Androidで新しいブラウザを強制的に開く方法(ウェブページから)
- 14. リンクやページを強制的にFacebookのInAppブラウザの外に開く方法はありますか?
- 15. Azureサービスファブリックデプロイ:展開する前にアプリケーションを強制的に削除する方法はありますか?または同じバージョンのアップグレードを強制しますか?私は私の新しいリリースを展開するために行くとき
- 16. アクティビティを強制的に強制的に破棄し、スタックに残す方法はありますか?
- 17. 組合に強制的に1つのタイプのように振る舞う方法はありますか?
- 18. 複数のウィンドウを含む崇高なテキスト:同じウィンドウ内で同じファイルを常に開く方法は?
- 19. Emacsでは、同じバッファが同じフレーム内の別のウィンドウに表示されないようにする方法はありますか?
- 20. ドロップダウン(選択)矢印コントロールを強制的に右にする方法はありますか?
- 21. DataGridViewのコンテンツを強制的にリフレッシュする方法はありますか?
- 22. QueryFullProcessImageNameWを強制的にフルフォームにする方法はありますか?
- 23. 強制的にquicktimeを有効にする方法はありますか?
- 24. childwindowと同じウィンドウを開く方法と閉じたときに親ウィンドウを有効にする方法はありますか?
- 25. win10に仮想タブレットキーボードを強制的に開く方法は?
- 26. iframe現在のウィンドウでリンクを開くように強制する
- 27. IEにActiveXコントロールを強制的にアンロードさせる方法はありますか?
- 28. 強制的にリフレッシュする方法はありますか?iTunesConnectのバンドルIDリスト
- 29. バックボタンを強制的にjQuery Mobileにキャッシュしないようにする方法はありますか?
- 30. UIViewにサブビューを強制的にリリースさせる方法はありますか?
私はこの答えを聞くことに興味があります。しかし、コンポーネントは、新しいウィンドウを開くことをアプリケーションに通知する必要はありませんか?新しいWebBrowserコンポーネントを使用して新しいウィンドウを開く必要があります。多分イベントがありますか? –
残念ながら、アンカーは "javascript:void(0)"リンクです。この問題を解決する方法はわかりません – Skuta
私の投稿 – abatishchev