javascript - 仅在第一个时才考虑动态添加的样式表

标签 javascript css macos cocoa wkwebview

我正在使用 loadFileURL 加载本地内容的 WKWebView 中动态添加 2 个样式表。

cocoa 应用程序调用以下 javascript 片段来添加样式表。

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath1;
document.head.appendChild(link);

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath2;
document.head.appendChild(link);

这 2 个样式表位于同一目录中。我可以加载第一个或第二个,但不能同时加载。如果我尝试同时加载两者,则只会应用第一个。

知道问题出在哪里吗?

最佳答案

你必须运行两次。创建一个函数,然后为两个样式表调用它。

const createLink = (cssSheetPath) => {
    const link = document.createElement('link');
    link.setAttribute('rel', 'stylesheet');
    link.type = 'text/css';
    link.href = cssSheetPath;
    document.head.appendChild(link);
}

createLink('style1.css');
createLink('style2.css');

添加了一个运行代码示例:codesandbox example


如果你不使用一个函数,那么你应该尝试使用两个不同的变量名:

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath1;
document.head.appendChild(link);

var link1 = document.createElement('link');
link1.setAttribute('rel', 'stylesheet');
link1.type = 'text/css';
link1.title = csstype;
link1.href = cssSheetPath2;
document.head.appendChild(link1);

我无法使用 WKWebView 对其进行测试。

关于javascript - 仅在第一个时才考虑动态添加的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55315840/

相关文章:

Javascript 重置表单特定部分中的 Django 表单字段?

javascript - 如果菜单链接有子项,如何防止菜单链接在第一次单击时重定向

css - 编辑设计是最好的

macOS SecureTransport 拒绝导入 OpenSSL 接受的证书

java - 我在 ant 中使用应用程序 bundler 时遇到错误

swift - 布局约束和 NSAnimationContext 的动画不正确

javascript - Angular Directive(指令) : Is there a better way than '$timeout' to get info about DOM elements created in "compile" function?

javascript - 在显示给用户之前验证输入值

javascript - tinymce 粘贴 HTML 标签 <poll poll-id ="' POLL ID'">

html - div 中的元素未保持原位