注入位置可以在webViewDidFinishLoad 代理方法里添加,但当webview有图片,加载时间很长,水印添加会等待很久,所以 可以在webViewDidStartLoad 添加延时执行,注入js 水印,可以很快添加上水印,无需等待页面全部加载完毕
[self performSelector:@selector(addWaterAction) withObject:self afterDelay:1];
func addWaterMarkView(){
self.webView.stringByEvaluatingJavaScript(from: JJWaterMarkTool.getWaterMarkJSString())
let context:JSContext = self.webView.value(forKeyPath: "documentView.webView.mainFrame.javaScriptContext") as! JSContext
let jsMethondAction = "watermark_show({ watermark_txt: \(User.share.EmployeeNo),watermark_y:65,watermark_x_space:170,watermark_fontsize : '30px'});"
context.evaluateScript(jsMethondAction)
}
swift 版本要注入的js代码:来源于网络
func getWaterMarkJSString() -> String {
let str = "function watermark_show(settings) {" +
"var defaultSettings={" +
"watermark_txt: \"wwwww\"," +
"watermark_x : 50," +
"watermark_y : 50," +
"watermark_cols : 3," +
"watermark_rows : 100," +
"watermark_x_space : 170," +
"watermark_y_space : 170," +