2016-12-16 81 views
0

这是问题所在。我正在尝试打印日历。我必须加载一些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。缺点是我必须加载可能需要一些时间的页面......我想知道是否有一个不太方便的方式来实现相同的结果。

+0

那么,为什么你要加载这样的CSS?而不是绝对路径? – putvande

+0

另一种选择是使用window.location.hostname将当前服务器捕获到一个var,并将连接值传递到您的css路径中(如果需要,使用字符串替换) – happymacarts

回答

0

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

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

<base>告诉浏览器使用的基本URL相关的链接。所以,如果你的基地设置为http://example.com/base并且有一个相对链接/path/to/css.css生成的url将使用http://example.com/base/path/to/css.css

相关问题