Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在布局顶部保留一个自定义div,同时允许用户浏览网站 #ontop{ 位置:绝对位置; 宽度:100%; 身高:10%; 排名:0; 底部:90%; 背景颜色:黄色; } #内容{ 位置:绝对位置; 宽度:100%; 身高:90%; 排名前10%; 底部:0; 边界:0; }_Javascript_Html_Css_Ajax_Iframe - Fatal编程技术网

Javascript 在布局顶部保留一个自定义div,同时允许用户浏览网站 #ontop{ 位置:绝对位置; 宽度:100%; 身高:10%; 排名:0; 底部:90%; 背景颜色:黄色; } #内容{ 位置:绝对位置; 宽度:100%; 身高:90%; 排名前10%; 底部:0; 边界:0; }

Javascript 在布局顶部保留一个自定义div,同时允许用户浏览网站 #ontop{ 位置:绝对位置; 宽度:100%; 身高:10%; 排名:0; 底部:90%; 背景颜色:黄色; } #内容{ 位置:绝对位置; 宽度:100%; 身高:90%; 排名前10%; 底部:0; 边界:0; },javascript,html,css,ajax,iframe,Javascript,Html,Css,Ajax,Iframe,鉴于上述CSS,是否可以在#contentDOM元素中加载外部网站,以允许用户浏览?然后,#ontop元素将能够为当前加载的网站提供一些附加功能 iframe的行为通常与我想要的类似: 始终在顶部 不过,出于安全目的,一些网站(如堆栈溢出)避免在iframe中访问其内容 始终在顶部 上面的代码段将不会加载网站内容,同时引发以下错误:拒绝显示文档,因为X-Frame-Options禁止显示 然后,我尝试使用AJAX满足我的需求(请参阅使用jQuery允许跨域AJAX请求): $(函数()

鉴于上述CSS,是否可以在
#content
DOM元素中加载外部网站,以允许用户浏览?然后,
#ontop
元素将能够为当前加载的网站提供一些附加功能


iframe
的行为通常与我想要的类似:

始终在顶部
不过,出于安全目的,一些网站(如堆栈溢出)避免在
iframe
中访问其内容

始终在顶部
上面的代码段将不会加载网站内容,同时引发以下错误:拒绝显示文档,因为X-Frame-Options禁止显示


然后,我尝试使用AJAX满足我的需求(请参阅使用jQuery允许跨域AJAX请求):


$(函数(){
$.ajax({
网址:'http://www.stackoverflow.com/',
键入:“GET”,
成功:功能(数据){
$(“#content”).html(data.responseText);
}
});
});
永远在最上面
这几乎是可行的,因为出现了两个问题:

  • 复杂网站渲染失败(如堆栈溢出)
  • 用户无法浏览加载的网站,因为URL(例如链接、请求)现在是相对于运行上述脚本的服务器的

  • 最后,我尝试将前两种解决方案结合起来:

    
    $(函数(){
    $.ajax({
    网址:'http://www.stackoverflow.com/',
    键入:“GET”,
    成功:功能(数据){
    $(“#content”).contents().find('body').append(data.responseText);
    }
    });
    });
    永远在最上面
    
    这稍微好一点:

  • 渲染失败更少(例如,Google仍然会把它搞砸,而堆栈溢出不再发生)
  • URL仍然是错误的

  • 怎样才能达到我的目标?无论是管理这些相对URL的解决方案,还是完全不同的仍然适合我的需要的解决方案,都会受到欢迎


    由于JSFIDLE的功能不足以处理如此复杂的异步请求,下面是我提供的三次尝试的源代码:

    • 使用
      iframe
    • 使用AJAX:
    • 同时使用:

    看起来你已经发现了为什么在网络上很难做到这一点,部分原因是为了防止人们恶意将其网站加载到另一个网站

    考虑到这一点,如果我处在你的位置,我会研究编写浏览器扩展(,),或者一个浏览器扩展,所有这些都保留了站点的功能,同时将JavaScript注入到页面中,以解决你遇到的权限问题

    bookmarklet的优点是,它应该是工作量最少、跨浏览器最多的解决方案,但代价是功耗和灵活性。如果你想拥有像浏览器的一部分一样的界面,并且不需要用户在适当的时候激活bookmarklet,那么就考虑一个扩展,特别是当你的目标用户是Chrome/FF用户时

    请注意,如果您必须拥有IE用户,那么为IE开发扩展不是非常友好的,尽管肯定是可行的


    另外,如果您想在开发FF扩展之前先对其进行一点原型化,那么请研究一下,这是一个基本上可以让您编写轻量级版本的扩展代码的扩展,而不必担心相关的打包问题。

    看起来您已经发现了为什么在web上很难做到这一点,部分故意为了防止人们恶意将其网站加载到另一个网站

    考虑到这一点,如果我处在你的位置,我会研究编写浏览器扩展(,),或者一个浏览器扩展,所有这些都保留了站点的功能,同时将JavaScript注入到页面中,以解决你遇到的权限问题

    bookmarklet的优点是,它应该是工作量最少、跨浏览器最多的解决方案,但代价是功耗和灵活性。如果你想拥有像浏览器的一部分一样的界面,并且不需要用户在适当的时候激活bookmarklet,那么就考虑一个扩展,特别是当你的目标用户是Chrome/FF用户时

    请注意,如果您必须拥有IE用户,那么为IE开发扩展不是非常友好的,尽管肯定是可行的


    另外,如果您想在开发FF扩展之前对其进行一点原型化,请查看,一个扩展,它本质上允许您编写一个轻量级的扩展代码版本,而不必担心相关的打包。

    很长时间我没有看到一个精心设计的问题/情况。很长时间我没有看到一个精心设计的问题/情况。