有些文件我无法获得文件的高度(绝对位于最底层).此外,填充底部似乎在这些页面上什么也不做,但在高度将返回的页面上执行.案例:
http://fandango.com
http://paperbackswap.com
在Fandango上
jQuery的$(document).height();返回正确值
document.height返回0
document.body.scrollHeight返回0
On Paperback Swap:
jQuery的$(document).height();TypeError:$(document)为null
document.height返回不正确的值
document.body.scrollHeight返回不正确的值
注意:如果有一些技巧,我有浏览器级权限.
我想在将一些div或输入添加到html时执行一个函数.这可能吗?
例如,添加文本输入,然后应该调用该函数.
我尝试在WKWebView中的内容完全加载后调用一个函数.我在Apple Swift WKNavigation文档中找到了"didFinishNavigation"功能.
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
println("WebView content loaded.")
}
Run Code Online (Sandbox Code Playgroud)
但是函数永远不会被调用.
import UIKit
import WebKit
class ViewController: UIViewController WKNavigationDelegate {
override func loadView() {
super.loadView()
self.webView = WKWebView(frame:self.containerView.frame, configuration: WKWebViewConfiguration())
self.containerView.addSubview(webView!)
self.containerView.clipsToBounds = true
}
override func viewDidLoad() {
super.viewDidLoad()
var url = NSURL(string:"http://google.com/")
var req = NSURLRequest(URL:url)
self.webView!.loadRequest(req)
}
func webView(webView: WKWebView!, didFinishNavigation navigation: WKNavigation!) {
println("WebView content loaded.")
}
}
Run Code Online (Sandbox Code Playgroud) 我目前正在为广泛使用自定义字体的客户构建公司网站.
在jQuerys DOM-ready上我正在进行位置计算,以确定应根据动态内容放置一些具有动态宽度和高度的弹出菜单.
这些计算失败,因为在应用font-face之前触发了DOM-ready,因此宽度和高度不正确.
现在(对于原型)我在DOM准备好500ms后进行计算以缓解这个问题,但由于显而易见的原因,这不能投入生产.
在最新的Firefox和Chrome中已经出现了这个问题.IE 8似乎没有问题,但是随后DOM-ready起火相当晚,所以延迟是内置的我猜:)
等待加载事件不是一个选项,所以我的问题是:
是否有可靠的跨浏览器方式来检测何时应用了font-face?
我一直在环顾四周,并没有看到任何快速相关的方法来做到这一点.我试图让我的UIWebViews高度变得动态.我有一个UIWebView使用loadHtmlString函数加载数据.事实是我从sqlite数据库加载数据,每次我加载不同长度的不同字符串,自然Web视图获得不同的高度.
现在我需要知道如何使UIWebView具有精确的高度,以便在webView下加载我的下一个内容.这就是我到目前为止所拥有的
var jobSkillView = UIWebView(frame: CGRectMake(-5, 480.0, screenWidth, 300.0))
jobSkillView.loadHTMLString("<html><body p style='font-family:arial;font-size:16px;'>" + jobSkills + "</body></html>", baseURL: nil)
jobSkillView.stringByEvaluatingJavaScriptFromString("document.body.innerHTML")
jobSkillView.scrollView.scrollEnabled = true
jobSkillView.scrollView.bounces = true
jobSkillView.sizeToFit()
border.addSubview(jobSkillView)
Run Code Online (Sandbox Code Playgroud)
我在SO上找到了这样的东西,但不知道如何将它链接到UIWebView框架:
func webViewDidFinishLoad(jobSkillView : UIWebView){
// Change the height dynamically of the UIWebView to match the html content
var jobSkillViewFrame: CGRect = jobSkillView.frame
jobSkillViewFrame.size.height = 1
jobSkillView.frame = jobSkillViewFrame
var fittingSize: CGSize = (jobSkillView.sizeThatFits(CGSizeZero))
jobSkillViewFrame.size = fittingSize
// webViewFrame.size.width = 276; Making sure that the webView doesn't get wider than …Run Code Online (Sandbox Code Playgroud) 我在滚动视图中嵌入了一个Web视图,我希望"扩展"Web视图以显示其所有内容,然后我想用滚动视图滚动浏览.
我使用滚动视图作为超级视图而不仅仅使用Web视图作为滚动视图的原因是因为我在Web视图上方有我想要包含在滚动过程中的标签(参见屏幕截图).
那么如何让webview自行调整大小,以便占用显示其包含的内容所需的所有空间?
之后,如何根据webview的大小调整superview(Scroll视图)的大小?
对于UIWebView,我们可以通过以下方式获得内容高度:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"]
Run Code Online (Sandbox Code Playgroud)
但是WKWebView没有这个方法,webView.scrollView.contentSize.height不对.
(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
我正在尝试调整正在显示的文本/内容的大小WKWebView.内容本身是从远程源(通过loadHTMLString)加载的,所以我无法更改css.
我已经尝试了大多数其他我可以在堆栈溢出上找到的解决方案(例如/sf/answers/3058643171/),但似乎都没有.
Xcode 9.2,Swift 4,iOS 10/11.
为了监控内容大小,我使用了以下代码:https://stackoverflow.com/a/41511422/1673377
lazy var webView: WKWebView = {
//Javascript string
let source = "window.onload=function () {window.webkit.messageHandlers.sizeNotification.postMessage({justLoaded:true,height: document.body.scrollHeight});};"
let source2 = "document.body.addEventListener( 'resize', incrementCounter); function incrementCounter() {window.webkit.messageHandlers.sizeNotification.postMessage({height: document.body.scrollHeight});};"
//UserScript object
let script = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
let script2 = WKUserScript(source: source2, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
//Content Controller object
let controller = WKUserContentController()
//Add script to controller
controller.addUserScript(script)
controller.addUserScript(script2) …Run Code Online (Sandbox Code Playgroud) 我需要在我的 swiftui 应用程序中渲染 html 字符串。
我发现这个: How to show HTML or Markdown in a SwiftUI Text?
但我尝试了那里的每一个解决方案,但我得到的是空白屏幕!
这是我的代码:
import SwiftUI
import WebKit
struct HTMLStringView: UIViewRepresentable {
let htmlContent: String
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.loadHTMLString(htmlContent, baseURL: nil)
}
}
struct audioInfoView: View {
let longDetails: String
var body : some View{
ScrollView{
ZStack{
HTMLStringView(htmlContent: "<p>\(longDetails)</p>")
//Text(longDetails)
}.padding()
}.padding(.top,50)
}
}
Run Code Online (Sandbox Code Playgroud)
这let longDetails: String是一个带有 html 标签的字符串,它是从另一个视图传递的。
如果我这样做Text(longDetails) …