[英]How to get an iframe contents width?
我的页面中有一个iframe。 像这样 :
<iframe width="600px">
<html>
<head>
</head>
<body>
<p>Some text</p>
<img src="/foo/bar/test.png" />
</body>
</html>
</iframe>
我希望能够检测iframe内容是否大于600px。 我试过这个:
var iframe = $('iframe');
if (iframe.width() < iframe.contents().width()) {
console.log('contents larger than the iframe');
}
它适用于Firefox和Internet Explorer。 但不是Chrome。 在Chrome上, iframe.contents().width()
为600。
我尝试了iframe.contents().find('body').width()
但结果也是600。
如何在Chrome中检测iframe内容的实际宽度?
尝试在加载iframe后添加宽度检查,如此处所示
它为我做了伎俩。
我想你想获得一个tinymce iframe的iframe宽度。 您可以尝试使用此代码段。 还需要做的是将插入符号设置在右外侧位置。 我们的想法是测量插入位置。
var ed = tinymce.editors[0]; // or tinymce.get('your_editor_id')
var rng = ed.selection.getRng();
rng.collapse(true);
var bm = ed.selection.getBookmark();
var $marker = $(ed.getBody()).find('#'+bm.id);
var elem = ed.getDoc().getElementById(bm.id+'_start');
try {
box = elem.getBoundingClientRect();
}
catch(e)
{
console.log('adjustIframePosition (irbasics) error creating box: ' + e);
}
var doc = ed.getDoc(),
docElem = doc.documentElement,
body = ed.getBody(),
win = ed.getWin(),
clientTop = docElem.clientTop || body.clientTop || 0,
clientLeft = docElem.clientLeft || body.clientLeft || 0,
scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
top = box.top + scrollTop - clientTop,
left = box.left + scrollLeft - clientLeft;
console.log('iframe width: ' + (box.left + scrollLeft) );
我不使用jQuery,但也许可以帮助这个:
var iframe = document.getElementById("myiframe");
var doc = iframe.contentDocument || iframe.contentWindow.document;
alert(doc.body.scrollWidth); // use this property for check
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.