是否可以通过JavaScript更改CSS伪元素样式?
例如,我想动态设置滚动条的颜色,如下所示:
document.querySelector("#editor::-webkit-scrollbar-thumb:vertical").style.background = localStorage.getItem("Color");
Run Code Online (Sandbox Code Playgroud)
而且我也希望能够像这样告诉滚动条隐藏:
document.querySelector("#editor::-webkit-scrollbar").style.visibility = "hidden";
Run Code Online (Sandbox Code Playgroud)
但是,这两个脚本都返回:
未捕获的TypeError:无法读取null的属性'style'
还有其他方法可以解决这个问题吗?
跨浏览器的互操作性并不重要,我只需要它在webkit浏览器中工作.
WebKit引入了创建CSS渐变的功能.例如,使用以下代码:
-webkit-gradient(linear, left top, left bottom, from(#fff), to(#000));
Run Code Online (Sandbox Code Playgroud)
但是,使用CSS可以使用不透明度渐变吗?我希望渐变在一侧是单色,在另一侧渐变为零不透明度.
跨浏览器兼容性并不重要; 我只需要它在谷歌浏览器中工作.
有没有办法用CSS做到这一点?如果没有,可以使用JavaScript(而不是jQuery)完成类似的事情吗?
谢谢你的帮助.
我正在尝试设置一个脚本来连接字符串中的一些变量(如果它们存在),以便将适当的元数据标记放入呈现的HTML文档中.
我的连接代码是:
data = "<html>\n<head>\n" + "</head>\n<body>\n\n" + paras.join("\n\n") + "\n\n</body>\n</html>";
Run Code Online (Sandbox Code Playgroud)
我正在尝试将if以下语句添加到其中(在第一个和第二个项目之间):
if (typeof metadata_title !== "undefined") {
"<title>" + metadata_title + "</title>\n"
}
if (typeof metadata_author !== "undefined") {
"<meta name=\"author\" content=\"" + metadata_author + "\"></meta>\n"
}
if (typeof metadata_date !== "undefined") {
"<meta name=\"date\" content=\"" + metadata_date + "\"></meta>\n"
}
Run Code Online (Sandbox Code Playgroud)
但我无法将这些语句中的任何一个直接添加到连接代码中(它会引发错误:) Unexpected token (.
我最好如何将这些语句添加到我的串联字符串中?
问题就是这一切.我意识到所有选项都可以在最新的浏览器中运行,但是什么是语义上最好的选择,为什么?
我试图在Python中使用通用编码检测器(chardet)来检测文本文件('infile')中最可能的字符编码,并在进一步处理中使用它.
虽然chardet主要用于检测网页的字符编码,但我找到了一个用于单个文本文件的示例.
但是,我无法弄清楚如何告诉脚本将最可能的字符编码设置为变量'charenc'(在整个脚本中多次使用).
我的代码基于上述示例和chardet自己的文档的组合,如下所示:
import chardet
rawdata=open(infile,"r").read()
chardet.detect(rawdata)
Run Code Online (Sandbox Code Playgroud)
当脚本继续运行以下(以及几个类似的用途)时,字符检测是必要的:
inF=open(infile,"rb")
s=unicode(inF.read(),charenc)
inF.close()
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我一直无法设置textarea元素的宽度并通过CSS使用填充.填充值似乎改变了textarea的宽度,我宁愿不这样做.
这是我的HTML代码:
<div id="body">
<textarea id="editor"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
我的CSS代码:
#body {
height:100%;
width:100%;
display:block;
}
#editor {
height:100%;
width:100%;
display:block;
padding-left:350px;
padding-right:350px;
}
Run Code Online (Sandbox Code Playgroud)
但是,填充值似乎不像预期的那样工作.textarea的宽度在两个方向上增加350px,而不是在元素的边界和其内容之间定义空间.
我已经考虑通过将边距设置为"0px auto"来对textarea进行居中,但是如果鼠标悬停在其中一个空边距上,我希望用户仍能够滚动文本区域.出于同样的原因,我无法添加另一个div来充当包装器,因为用户无法沿着空白区域滚动,而只能沿着无边距的textarea滚动.
有人可以帮忙吗?
我正在尝试设置一个脚本来自动本地化Web应用程序.由于Web应用程序旨在使用HTML5的脱机缓存功能,因此它需要能够脱机工作.因此,JavaScript在我看来是最好的选择.
我更喜欢将所有本地化的所有字符串放在一个JSON文件中,如下所示:
{
"en": {
"application_description": "This is the application's description in English.",
"application_name": "This is the application's name in English."
},
"ja": {
"application_description": "This is the application's description in Japanese.",
"application_name": "This is the application's name in Japanese."
}
}
Run Code Online (Sandbox Code Playgroud)
我想的可能是将所有元素本地化为链接到预期消息的自定义属性(例如:i18n ="application_name").
我可以使用检索浏览器的语言navigator.language,但我认为有些结果必须分成第一部分(例如:"en-US""en-GB"和"en-AU"都应该引用"en") .
但是,我的JavaScript知识是基本的,虽然我已经考虑过了,但我无法确定如何实际实现它.
非常感谢能够提供任何提示或示例的任何人!
是否可以通过JavaScript在textarea中禁用拼写检查?
我一直在关注HTML5'spellcheck'属性,我可以让它独立工作.但是,我希望能够通过JavaScript更改此属性.
阅读上面链接提供的文档后,我将以下代码行放在一起(来自更大文件的片段;我知道它们不会自行运行):
document.querySelector("#editor").spellcheck = "false";
Run Code Online (Sandbox Code Playgroud)
和
document.querySelector("#editor").spellcheck = "true";
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.我犯了错误或误解了文档吗?(无用,Google Chrome中的JavaScript控制台没有返回错误.)或者还有其他方法可以执行此操作吗?
我正在尝试为JavaScript命令组合一个正则表达式,以准确计算textarea中的单词数.
我发现的一个解决方案如下:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\b\w+\b/).length -1;
Run Code Online (Sandbox Code Playgroud)
但这不算任何非拉丁字符(例如:西里尔字母,韩文字母等); 它完全跳过它们.
我放在一起的另一个:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\s+/g).length -1;
Run Code Online (Sandbox Code Playgroud)
但是,除非文档以空格字符结尾,否则这不会准确计算.如果空格字符附加到计数值,即使空文档也计算1个单词.此外,如果文档以空格字符开头,则计算无关的单词.
是否有正则表达式,我可以在此命令中准确计算单词,无论输入方法如何?
基本上,我有一个打包的Web应用程序,如果Web应用程序的任何其他实例打开,我希望能够检查它,如果是的话,切换到打开的实例而不是创建另一个一.
此外,对于选项页面,我希望它能够检查应用程序是否已打开,如果是,则在选项页面已更改时刷新应用程序页面.
我一直在阅读有关chrome.tabs JavaScript模块的文档,但我无法弄清楚如何使函数查找特定的选项卡.我不太明白如何查找或设置特定选项卡的选项卡ID.我想这就是我想做的事情,但是如果我吵来了错误的树,请告诉我.
如果这里的任何人能够更好地为我解释,我会非常感激.
javascript ×8
css ×3
gradient ×1
html ×1
html5 ×1
json ×1
localization ×1
opacity ×1
padding ×1
python ×1
regex ×1
string ×1
tabs ×1
textarea ×1
word-count ×1