gpt4 book ai didi

javascript - OSX 上的 Swift : WebView stringByEvaluatingJavaScriptFromString doesn't work

转载 作者:行者123 更新时间:2023-11-28 08:47:23 25 4
gpt4 key购买 nike

这是我多年以来作为一名 Web 开发人员现在尝试使用 Xcode 和 Swift(最新)编写 OSX 应用程序的第一个问题。

我想做的是在我使用 Webkit/WebView 加载的网页上执行 JavaScript。我尝试了很多方法(互联网上充满了答案——主要是针对 iOS 的),但是针对 OSX + Swift + WebView(不是 UIWebview 或 WkWebView)的答案却很少。

我最新的方法是这个 ViewController.swift:

import Cocoa
import WebKit

class ViewController: NSViewController, WebFrameLoadDelegate {
var myWebView:WebView!

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
myWebView = WebView(frame: self.view.frame)
myWebView.frameLoadDelegate = self

//Load URL
let url = NSURL(string: "http://google.com");
let request = NSURLRequest(URL: url!);

myWebView.mainFrame.loadRequest(request)
self.view.addSubview(myWebView)

//Insert JS
myWebView.stringByEvaluatingJavaScriptFromString("alert('test');");

let script = "document";
if let returnedString = myWebView.stringByEvaluatingJavaScriptFromString(script) {
print("the result is \(returnedString)");
}

}

/*
* Page ready
*/

func webViewDidFinishLoad(myWebView : WebView) {
print("WvFinished")
}

func webViewDidStartLoad(myWebView : WebView) {
print("WvStarted")
}

}

JS-Alert 和 html 文档的返回都不起作用。

PS:“webViewDidFinishLoad”和“webViewDidStartLoad”似乎都没有被执行。

如果有任何帮助,我将不胜感激。我想我几乎在整个网络上搜索了所有提示 - 但对我没有任何帮助。

提前致谢!

最好的,

亚历克斯

最佳答案

关于 myWebView.windowScriptObject.evaluateWebScript("alert('test'‌);");,你也应该这样做 webView(_:runJavaScriptAlertPanelWithMessage:initiatedBy:),然后你可以打印message,你会得到警报的消息。如果你想弹出一个警告框,你需要自己做。

关于javascript - OSX 上的 Swift : WebView stringByEvaluatingJavaScriptFromString doesn't work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34967829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com