我有一个应用程序,用户可以在其中输入大量信息。因此,使用beforeunload
事件很重要,这样用户才不会意外离开页面并失去进度。但是,该应用程序还需要下载链接,问题是,即使下载 not 不会导致用户离开页面,点击这些下载链接也会触发beforeunload事件。
我该如何进行设置,以便用户必须在离开页面之前进行确认,但是通过单击下载链接不是触发此确认?
您可以在此处的可复制示例中看到整个内容:
答案 0 :(得分:2)
这是一种黑客行为,但我认为这可以防止beforeunload
事件在您的下载链接上触发:
<a href="somefile.txt" download target="_blank">Download</a>
基本上,将download
属性添加到元素中,并添加target
属性。
答案 1 :(得分:-1)
您可以在func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let urlHost : String = url.host as String!
let mainStoryboard: UIStoryboard = UIStoryboard(name: "BLE", bundle: nil)
if(urlHost == "BLELoginViewController")
{
let innerPage: BLELoginViewController = mainStoryboard.instantiateViewController(withIdentifier: "BLELoginViewController") as! BLELoginViewController
self.window?.rootViewController = innerPage
}
return true
}
class TodayViewController: UIViewController, NCWidgetProviding {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
}
func widgetPerformUpdate(completionHandler: (@escaping (NCUpdateResult) -> Void)) {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResult.Failed
// If there's no update required, use NCUpdateResult.NoData
// If there's an update, use NCUpdateResult.NewData
completionHandler(NCUpdateResult.newData)
}
@IBAction func extensionAction(_ sender: Any) {
let url: NSURL = NSURL(string: "UEM://BLELoginViewController")!
self.extensionContext?.open(url as URL, completionHandler: nil)
}
}
和/或required
元素上使用<input>
属性,以防止<textarea>
提交,直到<form>
字段完成。
请参见
也