使用window.open打开存储在变量中的URL

时间:2019-04-18 23:37:46

标签: javascript

首先,我要获取当前打开的网站的URL,并将该值存储在变量中。然后,我声明一个新变量,该变量添加“ view-source:” +带有我先前声明的URL的变量。这会打印出该网站源代码的地址。

我希望能够使用window.open,以便将存储在第二个变量中的新值用作参数内的URL。这是我的代码:

let page = window.location.href;
let sourcecode = "view-source:" + page;

window.open(sourcecode);

我该如何实现? 另外,有没有办法直接通过JavaScript打开源代码?谢谢。

1 个答案:

答案 0 :(得分:2)

不幸的是,在主要的浏览器中,禁止打开以<a href开头的窗口(或具有view-source:的窗口),这是security issue

不幸的是,在加载的页面上,没有 generic 的方法来标识视图源内容。但是,在许多情况下,您可以再次获取页面 并检查响应文本。例如,如果您使用的URL是https://jsonplaceholder.typicode.com/,则可以执行以下操作:

fetch('https://jsonplaceholder.typicode.com/')
  .then(res => res.text())
  .then((responseText) => {
    console.log(responseText);
  });

如果 HTML中的任何内容都没有改变最终结束标记之前的DOM,那么您可以可靠地检查在分析结束之前运行的脚本标记中的innerHTML

console.log(document.documentElement.innerHTML);

但是,如果任何<script>在DOMContentLoaded之前更改了DOM(很多都这样做),则将无法使用。