gpt4 book ai didi

javascript - 如何获得 iframe 内容宽度?

转载 作者:搜寻专家 更新时间:2023-11-01 04:43:28 27 4
gpt4 key购买 nike

我的页面中有一个 iframe。像这样:

<iframe width="600px">
<html>
<head>
</head>
<body>
<p>Some text</p>
<img src="/foo/bar/test.png" />
</body>
</html>
</iframe>

我希望能够检测 iframe 内容是否大于 600 像素。我试过这个:

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 内容的实际宽度?

最佳答案

我猜你想获得 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) );

关于javascript - 如何获得 iframe 内容宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14689125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com