我正在尝试使用这种代码在javascript中获取图像的大小:
var image = document.createElement("img");
image.src = "http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png";
然后我一直在尝试使用image.width
或image.naturalWidth
来获取图片的宽度,但它会检索0。
答案 0 :(得分:1)
使用上面的代码创建元素后。你可以使用
image.height
image.width
原因是,你得到0是因为当你执行语句时,它就不会被加载。您必须等到图像加载并执行语句。您可以使用document.ready
,但问题是它可能不是100%准确。
参考:Official way to ask jQuery wait for all images to load before executing something
您可以使用window.load(使用jquery),但根据上述文章,这是有风险的。
为了获得最佳解决方案,您可以使用lib https://github.com/desandro/imagesloaded。
您可以使用@ Raman的技术,但问题是您必须将eventlistener附加到每个图像,这可能会破裂。
如果您正在使用imagesloaded,则可以观察要加载的图像的容器并相应地执行代码。
Jsfiddle:https://jsfiddle.net/52q0juq6/1/
答案 1 :(得分:0)
您需要在图像的import UIKit
class webviewViewController: UIViewController {
@IBOutlet var webview: UIWebView!
@IBAction func reload(sender: UIBarButtonItem) {
webview.reload()
}
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL (string: "http://www.google.com");
let requestObj = NSURLRequest(URL: url!);
webview.loadRequest(requestObj);
}
}
上计算图像尺寸。
Here是证明这一点的小提琴。
load
答案 2 :(得分:0)
因为图片尚未加载。
window.FindName("the_elements_name");