我的页面中有一个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内容的实际宽度?
答案 0 :(得分:0)
尝试在加载iframe后添加宽度检查,例如建议的here
它为我做了诀窍。
答案 1 :(得分:0)
我想你想得到一个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) );
答案 2 :(得分:-1)
我不使用jQuery,但也许可以帮助这个:
var iframe = document.getElementById("myiframe");
var doc = iframe.contentDocument || iframe.contentWindow.document;
alert(doc.body.scrollWidth); // use this property for check