使用JavaScript选择CSS主题

使用JavaScript选择CSS主题,javascript,html,css,Javascript,Html,Css,我正在运行一个仅本地的站点,而不是在Web服务器上 我有几个CSS样式,用户可以选择。如果该代码直接在页面上,那么使用该代码将非常有效 <div class="themeselect"> <table><tr> <td><a href="#" onclick="localStorage.setItem('style','screen');location.reload()"><i class="far fa-sun"><

我正在运行一个仅本地的站点,而不是在Web服务器上

我有几个CSS样式,用户可以选择。如果该代码直接在页面上,那么使用该代码将非常有效

<div class="themeselect">
<table><tr>
<td><a href="#" onclick="localStorage.setItem('style','screen');location.reload()"><i class="far fa-sun"></i></a></td>
<td><a href="#" onclick="localStorage.setItem('style','highcontrast');location.reload()"><i class="far fa-moon"></i></a></td>
</tr></table>
</div>

我想将带有
语句的HTML注入带有外部JS文件的页面。我已经试过了,但是点击链接没有任何作用。我认为这可能与单引号和/或双引号有关,但我似乎尝试了它们的每一种组合,但我无法理解

document.write("<div class='themeselect'>");
document.write("<table><tr>");
document.write("<td><a href='#' onclick='localStorage.setItem('style','screen');location.reload()'><i class='far fa-sun'></i></a></td>");
document.write("<td><a href='#' onclick='localStorage.setItem('style','highcontrast');location.reload()'><i class='far fa-moon'></i></a></td>");
document.write("</tr></table>");
document.write("</div>");
document.write(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);

如果要在主体标记或容器元素之间插入文本:

document.body.innerHTML = "<div class='themeselect'><table><tr><td><a href='#' onclick='localStorage.setItem('style','screen');location.reload()'><i class='far fa-sun'></i></a></td><td><a href='#' onclick='localStorage.setItem('style','highcontrast');location.reload()'><i class='far fa-moon'></i></a></td></tr></table></div>"
document.body.innerHTML=“”
替换“to”,它工作xD

退出它

检查我是如何写第三行和第四行的:

document.write("<div class='themeselect'>");
document.write("<table><tr>");
document.write("<td><a href='#' onclick=\"localStorage.setItem('style','screen');location.reload()\"><i class='far fa-sun'></i></a></td>");
document.write("<td><a href='#' onclick=\"localStorage.setItem('style','highcontrast');location.reload()\"><i class='far fa-moon'></i></a></td>");
document.write("</tr></table>");
document.write("</div>");
document.write(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);
文件。填写(“”);

您所说的“使用外部JS文件将HTML注入页面”是什么意思"? 从浏览器扩展或bookmarklet?还是别的什么?@BenHull抱歉。我编辑了我的问题来解释我的意思。你有多个引用问题。请查看Dev控制台。您可以通过使用反斜杠转义内部引号来修复这些问题。
document.write()
将重复写入文档的所有内容,您不能使用类似的连续调用。您可以使用
document.body.innerHTML=…
并将所有HTML作为字符串传入。@Teemu callme您想要什么我得到的唯一错误是CORS策略错误。