jQuery插件HISTORY.js(https://github.com/browserstate/History.js/)提供HTML5历史推送实现功能,如果浏览器不支持,应该能够实现HTML4主题标签功能.documentation/README文件详细说明了用法:
var History = window.History; // Note: We are using a capital H instead of a lower h
if ( !History.enabled ) {
// History.js is disabled for this browser.
// This is because we can optionally choose to support HTML4 browsers or not.
return false;
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,该文档将HISTORY.js插件的用法解释为HTML5,并未解释HTML4支持的用法.
但是,在文档的"下载和安装"部分中,它显示为:
5. Include History.js
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.js">/script>
<script src="http://www.yourwebsite.com/history.js/scripts/compressed/history.html4.js"></script>
Run Code Online (Sandbox Code Playgroud)
这里的说明可能表明HTML4#标签支持是自动的,但使用页面上的说明表明必须手动实现; 我相信其实是这样的.
我找不到任何有关实现HTML4主题标签功能的文档.请帮我解决这个问题.
我正在寻找一种通过 Webpack@3.12.0 配置传入函数的方法,以帮助 Webpack 在编译时动态解析别名。我有各种第三方包可以导入,例如package-a/file-b. 但是,根据正在导入的第三方包package-a,我希望将其解析为不同版本的package-a; 虽然会有一个版本package-ain node_modules,但旧版本不会在node_modules不同的目录中。由于这些是第三方,我不想手动更改他们的代码。要在相应包中使用的版本在路径名中,并且有任意数量的包。
因为package-a是一个私有包,它不在 npm 上,也不在 Github 上进行版本控制。
这两个帮助我更接近这一点,但两个答案似乎都过时了: - https://github.com/webpack/webpack/issues/110 -是否可以在 webpack 中创建自定义解析器?
这是我到目前为止所拥有的:
config.resolve.plugins = [{
apply(resolver) {
resolver.plugin('module', function(request, callback) {
if (request.request.startsWith('package-a')) {
this.doResolve(
'file',
Object.assign({
...request,
request: request.request.replace(/^package-a/, `${__dirname}/versions/v2.2.0`) + '.js',
file: true,
resolved: true,
}),
null,
callback
);
return;
}
callback();
});
}
}];
Run Code Online (Sandbox Code Playgroud)
虽然它正确构建,但问题在于它仍在评估node_modules package-a- 所以我猜代码根本不起作用。