【问题标题】:Disable Javascript alert on wpf c#在 wpf c# 上禁用 Javascript 警报
【发布时间】:2017-06-20 12:55:06
【问题描述】:

我想在 wpf(Windows Presentation Foundation.) 上禁用 javascript 警报。

wpf 上的 Javascript 警报 Wpf Image

但是,我不想在 WebBrowser 上禁用 javascript 警报

WebBrowser 上的 Javascript 警报 Webbrowser Image

WPF

private void ClickOKButton()
{
    IntPtr hwnd = FindWindow("#32770", "Web sayfasından ileti");
    hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Button", "OK");
    uint message = 0xf5;
    SendMessage(hwnd, message, IntPtr.Zero, IntPtr.Zero);
}

public MainWindow()
{
    InitializeComponent();

    wbBrowser.Navigate(new Uri("http://localhost/AlertWebProject"));
    wbBrowser.LoadCompleted += WbBrowserOnLoadCompleted;
    wbBrowser.Navigated += WbBrowser_Navigated;
}

private void WbBrowser_Navigated(object sender, NavigationEventArgs e)
{
    ClickOKButton();
}

private void WbBrowserOnLoadCompleted(object sender, NavigationEventArgs navigationEventArgs)
{
    ClickOKButton();
}

JavaScript

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
      <script>  
          function test() {
              alert("Test");
          }               
      </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
  <button onclick="test();">Test</button>
    <p>dsadsadas</p>
    </div>
    </form>
</body>
</html>

【问题讨论】:

  • 所以您想在 WPF WebBrowser 控件中禁止警报,而不是在常规 Web 浏览器窗口(如 Chrome)中时抑制警报?您最好的选择可能是在您的 WPF 应用程序中注入一些 javascript 来重新定义 alert
  • @MattBurland 这听起来是个好主意。如果您将其作为答案,我会投赞成票;)

标签: javascript c# .net asp.net-mvc wpf


【解决方案1】:

您最好的选择可能是将一些javascript 注入WebBrowser 控件以重新定义alert。例如,您可以查看如何注入 javascript 的这个问题:

How to inject Javascript in WebBrowser control

那么你需要做的就是注入一个像这样的sn-p:

window.alert = function() {}

现在对alert 的任何调用都将无济于事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多