如何在html / javascript中使用dom检索图像的大小?

时间:2016-01-18 03:28:47

标签: javascript html

我正在尝试使用这种代码在javascript中获取图像的大小:

var image = document.createElement("img");
image.src = "http://home.cse.ust.hk/~rossiter/mooc/matching_game/smile.png";

然后我一直在尝试使用image.widthimage.naturalWidth来获取图片的宽度,但它会检索0。

3 个答案:

答案 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");