具体的例子:haystack.js从剧本你有多大的草堆?
我已经搜索了答案,一切似乎都指向使用//# sourceURL=name.js评论。然而,如何实现这一点的机制让我望而却步(也许我只是很密集)。
每个人总是指向Debugging JavaScript,但演示坏了(同源错误)。其他常见示例不提供使用此类外部脚本的洞察力。
我已经尝试使用 Live Edit 插入 sourceURL 注释,但到目前为止 eval 脚本从未出现在 Sources 选项卡中。
有人可以指导我完成此任务的步骤吗?
更新:这已被证明是一项有趣而烦人的努力。这个特定的站点使任务变得不必要地困难,并具有以下复杂性:
haystack.js 脚本包括document.write()语句(加载使用的其他脚本)。这些必须在重新加载脚本之前删除,否则 DOM 将被清除。
作者在代码上使用了一种奇怪的反引号密码形式。因此,代码修改(包括sourceURL)必须在消除混淆之后,但在 eval 发生之前进行。
我提出了一个部分解决方案。将 jQuery 加载到页面后,我运行此脚本:
$.ajax({
url: '/js/haystack.js',
dataType: 'text'
}).done(function(data) {
// Remove document.write() statements and append sourceURL comment after obfuscation is removed
var refactored = data.replace(/return d/, "return d.replace(/document\.write[^;]+;/g, '') + '\\n//# sourceURL=haystack.js\\n';");
$('head').append('<script type="text/javascript">' + refactored + '</script>');
});
Run Code Online (Sandbox Code Playgroud)

现在 haystack.js 出现在 Sources …
我正在使用 Nu Html Checker 验证我的 CSS:
考虑以下 CSS:
:root {
--target-size: 48px;
}
.test1 {
flex: 0 0 calc(var(--target-size) + 1px);
}
.test2 {
min-height: calc(var(--target-size) - 0.5rem);
}
.test3 {
flex: 0 0 calc(320px - 3 * var(--target-size));
}
Run Code Online (Sandbox Code Playgroud)
验证器不报告.test1和错误.test2。
然而,对于 .test3,验证器会报告此错误:
错误:flex:类型不兼容。
我知道 CSS 规则规定,对于乘法,至少一个参数必须是<number>. 我不认为这违反了。我尝试将乘法嵌套在另一个 calc() 中,但错误仍然存在。
知道该规则有什么问题以及如何纠正吗?
有许多示例用于使用类似于以下内容的单个缓存初始化服务工作者:
let cacheName = 'myCacheName-v1';
let urlsToCache = ['url1', 'url2', url3'];
self.addEventListener('install', function (event) {
event.waitUntil(
caches.open(cacheName).then(function (cache) {
return cache.addAll(urlsToCache);
}).then(function () {
return this.skipWaiting();
})
);
});
Run Code Online (Sandbox Code Playgroud)
我希望在我的服务工作者上初始化多个缓存.动机是根据变化趋势对资产进行分组(例如,静态应用数据与css,javascript等).使用多个缓存,我可以将单个缓存(通过版本化的缓存名称)更新为缓存更改中的文件.理想情况下,我希望设置类似于以下的结构:
let appCaches = [{
name: 'core-00001',
urls: [
'./',
'./index.html', etc...
]
},
{
name: 'data-00001',
urls: [
'./data1.json',
'./data2.json', etc...
]
},
etc...
];
Run Code Online (Sandbox Code Playgroud)
到目前为止,我最好的尝试类似于:
self.addEventListener('install', function (event) {
appCaches.forEach(function (appCache) {
event.waitUntil(
caches.open(appCache.name).then(function (cache) {
return cache.addAll(appCache.urls);
}));
});
self.skipWaiting();
});
Run Code Online (Sandbox Code Playgroud)
这种方法似乎有效.但是,我仍然是服务工人和承诺的新手.有些东西告诉我,这种方法有一个陷阱,我太缺乏经验,无法识别.有没有更好的方法来实现这个?
Windows定义了五种文件夹类型(常规项目,文档,图片,音乐和视频).在Windows资源管理器中,您可以通过右键单击文件夹并选择属性 - >自定义 - >优化此文件夹来获取/设置类型.我正在寻找一种在C#中获取/设置文件夹类型的方法.我已经搜索过这个,但我不能使用正确的术语.
有人能指出我正确的方向吗?
更新:感谢大家的见解!认为这很简单 - 显然不是.
很奇怪.我可以选择没有desktop.ini的文件夹.我可以更改该文件夹的属性,选择文件夹类型,单击"应用",查看是否已创建desktop.ini,并相应地查看文件夹视图更改.但是,我可以删除desktop.ini,文件夹类型仍然存在.通过Explorer重启.通过Windows重启.
关于可能的影子副本,我找不到支持这一点的证据.除C:外,我的所有驱动器都关闭了系统保护功能.使用ShadowExplorer,我找不到任何desktop.ini文件的引用.
百思不得其解......