打开一个空白窗口,保持与父窗口相同的位置

时间:2016-12-16 17:19:48

标签: javascript html css

这就是问题所在。我正在尝试打印日历。我必须加载一些css,但所有的css链接都有一个绝对路径,如/path/to/css.css。所以,如果我只是打开窗口:

var win = open('', '_blank')
win.document.write(htmlContent)

这将正确绘制html,但它不会加载css,因为它没有指向正确的主机名。

之后更改位置将创建重定向,因此它不是真正的解决方案。

我能够实现我想要的目标:

function open_calendar(content) {
  var win = open(window.location, 'Calendar')        

  win.addEventListener('load', function () {
    win.document.write(content)
  })

  return win
}

窗口打开相同的位置,当页面加载时,它会将内容更改为我想要的内容。结果是它仍然使用相同的位置,并允许我绘制我的自定义HTML。缺点是我必须加载可能需要一些时间的页面...我想知道是否有一种不太常见的方法来实现相同的结果。

1 个答案:

答案 0 :(得分:0)

您可以在编写之前在html中添加<base>元素。并将其设置为您希望相关网址使用的基本网址。

<base href="http://example.com/some/path">

<base>告诉浏览器哪些基本网址用于相对链接。因此,如果您已将基数设置为http://example.com/base并且具有相对链接/path/to/css.css,则使用的结果网址将为http://example.com/base/path/to/css.css