5

ページに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とInternetExplorerで動作します。しかし、Chromeではありません。Chromeではiframe.contents().width()600です。

試してみiframe.contents().find('body').width()ましたが、結果も600です。

Chromeでiframeコンテンツの実際の幅を検出するにはどうすればよいですか?

4

3 に答える 3

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) );
于 2013-02-05T09:42:09.680 に答える
0

ここで提案されているように、iframe を読み込んだ後に幅チェックを追加してみてください

それは私のためにトリックをしました。

于 2013-02-04T16:04:29.537 に答える
-1

私はjQueryを使用していませんが、おそらくこれを助けることができます:

var iframe = document.getElementById("myiframe");
var doc = iframe.contentDocument || iframe.contentWindow.document;

alert(doc.body.scrollWidth); // use this property for check
于 2013-02-04T18:04:03.680 に答える