【问题标题】:Change the content-type of a file from within the browser?从浏览器中更改文件的内容类型?
【发布时间】:2013-06-26 18:28:54
【问题描述】:

是否可以在浏览器中更改内容类型?

用例:bitbucket 和 github 都允许您查看存储在存储库中的“原始”形式的文档。这些以Content-type: text/plain 返回。但是,有时这些是 HTML 文档,我希望在这种情况下将它们呈现为 HTML。

重要的是我无法更改服务器返回Content-type的方式。

this answer 为 github 提供了解决方法,但不适用于 bitbucket)

【问题讨论】:

    标签: html browser github bitbucket


    【解决方案1】:

    是的,只需使用浏览器插件,例如用于 Chrome 的“Requestly”或“用于 Google Chrome™”的“Modify Headers”(或用于其他浏览器的类似插件,只需搜索“修改标题”插件即可)。

    对于特定的 URL,您需要将 Content-Type 更改为 text/html 并可能还更改 Content-Security-Policy(尝试 default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-eval';)。

    【讨论】:

      【解决方案2】:

      我前段时间尝试过类似的东西。我使用 JQuery 将文本解析为 Json 或 html。如果是 HTML,我将其直接附加到 DOM。

      查看parseHTML()

      【讨论】:

      • 我不能使用 jquery,因为它没有加载到页面上,而且我认为它是 https 的事实意味着我不能使用这个解决方案:stackoverflow.com/questions/7474354/…(书签和脚本都失败了[Blocked] ... ran insecure content...)
      • 能够让 jquery 与 var script = document.createElement('script');script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js";document.getElementsByTagName('head')[0].appendChild(script); 一起运行,但我真的不知道足够的 jquery 比 $('body').replaceWith($.parseHTML($("html").html())) 做得更好,这是行不通的。
      • 我的想法是在您自己的自定义 html 页面中使用 JQuery ajax 调用或将请求的页面加载为<iframe>,并且仅获取其内容或链接并将其附加到您的自定义页面。类似var html = $('iframe').contents().find('div#iframe_content') 的内容用于grep 内容,$('div#custompagecontent').append(html) 将其添加到您的页面。但是,由于跨域策略,https 可能是一个问题。现在我对 javascript 的想法可能没用,但如果我发现新的东西,我会发布它。干杯
      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 2012-03-28
      • 2012-12-03
      • 2012-03-08
      相关资源
      最近更新 更多