我想在运行时更改 favicon。当页面在选项卡中打开时,我的代码有效,但在弹出窗口中打开页面时不起作用
我已经在最新的 Chrome、Firefox 和 Edge 上进行了测试,但不能正常工作,但可以在 Internet Explorer 11 上运行。
这是用于更改网站图标的代码:
function changeFavicon(src) {
// delete the current favicon from the DOM
var oldLink = document.getElementById('appFavicon');
if (oldLink) {
document.head.removeChild(oldLink);
}
// add the new favicon
var link = document.createElement('link');
link.id = 'appFavicon';
link.rel = 'shortcut icon';
link.href = src;
document.head.appendChild(link);
}
Run Code Online (Sandbox Code Playgroud)
这是favicon.html为 gif 制作的完整内容:
<!doctype html>
<html>
<head>
<link rel="shortcut icon" id="appFavicon" href="favicon.ico">
</head>
<body>
<script>
function popUp(url,windowName) {
newwindow=window.open(url,windowName,'height=200,width=350');
if (window.focus) {newwindow.focus()} …Run Code Online (Sandbox Code Playgroud) 我有这个非常简单的HTML:
<a download="red.png"
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==">
Static
</a>
Run Code Online (Sandbox Code Playgroud)
在Chrome或Firefox中,它会red.png按预期下载。
在IE中,它导航到错误页面。在JSFiddle上看到它。
现在,我知道downloadIE中不支持该属性,这很好。我仍然希望它能够导航到“文件”,从而允许用户保存它。相反,它导航到错误页面。
有办法解决这个问题吗?数据URI是在客户端生成的;在服务器上创建文件不是一种选择。
编辑:MSDN说:
出于安全原因,数据URI仅限于下载的资源。数据URI不能用于导航,脚本编写或填充frame或iframe元素。
...我读为“即使其他所有浏览器都支持此功能,我们也不知道该怎么做”。因此,仍在寻找一种变通方法来下载在客户端上生成的文件。