Mag*_*gus 5 javascript iframe jquery tinymce width
我的页面中有一个iframe.像这样 :
<iframe width="600px">
<html>
<head>
</head>
<body>
<p>Some text</p>
<img src="/foo/bar/test.png" />
</body>
</html>
</iframe>
Run Code Online (Sandbox Code Playgroud)
我希望能够检测iframe内容是否大于600px.我试过这个:
var iframe = $('iframe');
if (iframe.width() < iframe.contents().width()) {
console.log('contents larger than the iframe');
}
Run Code Online (Sandbox Code Playgroud)
它适用于Firefox和Internet Explorer.但不是Chrome.在Chrome上,iframe.contents().width()
是600.
我试过iframe.contents().find('body').width()
但结果也是600.
如何在Chrome中检测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) );
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8267 次 |
最近记录: |