【问题标题】:FireFox blocks iframe and doesn't show, while this iframe is a same domain addressFireFox 阻止 iframe 并且不显示,而这个 iframe 是同一个域地址
【发布时间】:2018-05-15 02:58:25
【问题描述】:

我现在正在处理 iframe 问题,但找不到问题所在。我的页面中有一个 iframe,这个 iframe 指向另一个页面,但在同一个域中。我使用 angularJS 作为我的框架并使用 angular 路由器。

我的页面链接是这样的:https://xxxx:8443/ctx/#/mypage while iframe src=/ctx/#/iframepage

这在 Chrome 和 IE 边缘运行良好。但是 iframe 不会在 Firefox 中加载任何资源。我检查了元素,发现这个 iframe 下只有一个空白页:

但是当我将 iframe src 更改为 like google.com 时,iframe 可以正常工作。

顺便说一句,我使用自签名证书来测试 https 服务。此证书不受信任。

我不知道为什么 iframe 不起作用,有人可以帮助我吗?

【问题讨论】:

    标签: firefox iframe


    【解决方案1】:

    # 是 URI 中的保留字符。

    您需要将其编码为%23

    Chrome 和 Edge 是错误的,他们应该认为你的 iframe 的 src 为"/ctx/index.html#%2Fiframepage", 其中index.html 是您的服务器作为默认页面名称发送的任何内容,"%2Fiframepage" 被视为fragment identifier

    所以你最终的src 将是

    "/ctx/%23/iframepage"
    

    【讨论】:

    • 嗨,谢谢您的提示。但不幸的是,它不起作用。如果我将 '#' 更改为 %23,服务器会以找不到文件的错误响应。这个 # 到 %23 的更改是否会使服务器将此请求视为文件请求?
    • @user1242158 我不知道那么...你的目录路径是像 ctx > # > [mypage, iframepage] 吗?你如何设置这个 iframe 的 src?顺便说一句,如果两个页面都在同一个文件夹中,您可以简单地使用相对路径:<iframe src="iframepage" ...
    猜你喜欢
    • 2020-11-11
    • 2021-06-11
    • 2012-05-17
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2011-10-13
    • 2017-01-03
    相关资源
    最近更新 更多