【问题标题】:Cocoa - Webview have request is nil when call createWebViewWithRequestCocoa - 调用 createWebViewWithRequest 时,Webview 的请求为零
【发布时间】:2012-11-23 12:22:56
【问题描述】:

我对 Cocoa 中的 WebView 有一个大问题。 我的 WebView 加载了一个 javascript,它将在这个 WebView 中打开一个新窗口(不在浏览器中打开)。

我打电话

[myWebView setUIDelegate: self]

调用createWebViewWithRequest:withRequest:

在 createWebViewWithRequest 中,我加载了请求,但请求为零。我不知道为什么,卡在这里。

- (WebView*)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
    [[sender mainFrame]loadRequest:request];
    return sender;
}

你有什么想法吗?

【问题讨论】:

  • 我之前尝试过这个链接,但我没有。 webview 不会在 webview 中打开新窗口。也许我的问题不清楚。我会更新的。
  • 对该问题的回复还提到 CreateWebViewWithRequest 中的请求不是导致 WebKit 错误的原因。

标签: macos cocoa webview webkit


【解决方案1】:

在这里传递一个 nil 请求是一个intentional change in WebKit

也许您可以更改您的 JavaScript 以使用...

<a target=_blank href="http://www.example.com/">

...而不是window.open()?

如果你这样做,你可以使用

-webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:

WebPolicyDelegate获取请求的方法

【讨论】:

    【解决方案2】:

    删除线

    [[sender mainFrame]loadRequest:request];
    

    【讨论】:

      猜你喜欢
      • 2018-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多