JS 该怎麽跨网域取得 iframe 网页内容的高度呢?

JavaScript muki 发表于 6 年前最后回复来自 qq2850071112 4 年前

昨天上头要求要弄一个效果
把一个外部的网站包含在一个页面里面。

用 iframe 试了一个早上,都无法依网站内容来指定 iframe 的高度。
无法跨正确取得 iframe 里网站的 document.body.scrollHeight
是因为 js 的跨网域连网站的宽高这些元素都不能存取吗?

共收到11条回复
guokai 6 年前 #1

可以通过代理页面实现跨域通信或者高度的设置。http://calibrate.be/labs/cross-domain-iframe-communication

muki 6 年前 #2

如果沒辦法在 child page 加入 code 的話,是不是就無解了 :|

guokai 6 年前 #3

@muki 嗯.. 😞

muki 6 年前 #4

回報一下,後來改用 php DOM 的方式做了

guokai 6 年前 #5

@muki Cool,核心代码可否贴出来学习下。

muki 6 年前 #6

不知道是不是能在留言框直接貼 code,所以就先另外貼出來,具體內容大概是這樣
https://gist.github.com/mukiwu/38b91835cd57ef089d84

在前端討論區貼後端 code 好妙 XDD

muki 6 年前 #7

說明一下 getElementById 裡面一定要填入該網站有的 id name,直接拿我測試的 url 放進去跑應該會出錯,因為 http://www.mukispapce.com 沒有這個 id name

guokai 6 年前 #8
<?php
$url = 'http://www.mukispace.com';
$doc = new DOMDocument();
$doc->loadHTMLFile($url);

$dom_excontent = $doc->getElementById('excontent');

$newdoc = new DOMDocument();
$cloned = $dom_excontent->cloneNode(TRUE);
$newdoc->appendChild($newdoc->importNode($cloned,TRUE));
echo $newdoc->saveHTML();


//echo $doc->saveHTML();
?>

可以贴代码的~ 😊

muki 6 年前 #9

喔喔!! 是直接貼 code 就可以嗎?

<?php
    var_dump("test");
?>

用 markdown 也失敗 😆

guokai 6 年前 #10

@muki 教程见这里哈~ http://f2e.im/t/1

muki 6 年前 #11

成功了 哈謝謝

登录后即可参与回复