Include a webpage inside a div

前提是你 提交于 2019-12-17 18:29:25

问题


I have to include a webpage inside my webpage's div. I want somehting like iframe to be done with DIV. Basically, I will be providing a URL to my div and it has to open it inside itself... Do we have something like this in modern HTML? I cannot use frames as some browsers have issues with frames.


回答1:


Nope. You can't embed a complete HTML document inside another div element as this is a block level element and W3C has defined what could be included inside it.

But there is a workaround. Follow these steps:

  1. Get the document using ajax (jQuery rocks, use that)
  2. Extract the content of the <body> element and put it inside your div element
  3. Get all links and script of <head> element and append them to the <head> element of your existing pgae.



回答2:


Try using an <object> element:

<div style="margin: 0 auto; width:100%; height:400px;">
    <object type="text/html" data="**URL to page**"
            style="width:100%; height:100%; margin:1%;">
    </object>
</div>



回答3:


you should use iframe. that's basically what iframes are for. if you stick with modern browsers in any case they don't have issues with iframes (not more than you'll have to face using div's instead)...




回答4:


You can use iframe or if you decide to use jQuery load function (http://api.jquery.com/load/) you need to avoid the cross script scripting problem - you need to create some sort of proxie take a look at this: WebBrowser Control: Disable Cross Site XSS Filtering or another way to process JS in full on HTML




回答5:


It should have been in the question itself, but the OP has clarified the reason he does not want to use an iframe is because interframe communication is not allowed. Well, that’s nothing a proxy + postMessage can’t solve.

I believe there is simply no way to actually embed a full document within another one, retaining things like separation of styles and scripts and the like, without using frames in some sense.




回答6:


This is really an extension to Saeed's response. To get around cross site scripting issues, you will have to write a script on your own server that does a CURL call for the webpage to be embedded. Your javascript will then make a call to this script, passing the URL as a GET/POST parameter.

I agree with a lot of other people here that this is a case where you really should just use an iframe... I believe you can set the iframe with no src tag and manually put the content inside it. That would mean you don't need to take the steps Saeed suggested to break up the head and body. However you still need the script I described to get around cross site scripting.



来源:https://stackoverflow.com/questions/6608494/include-a-webpage-inside-a-div

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!