是否有一个'好'干净的CSS黑客列表,这肯定是面向未来的?
例如,zoom:1安全,只要它只提供给IE,你就会记得它在那里.使用子选择器的常见黑客并不安全,因为IE7支持它们.使用height:1%只是感觉很脏(但可能只是我).
我知道ie7-js,所以IE6的bug不用担心我.此外,我不是在寻找宗教辩论,只是消息来源.
感谢回复 - 我选择了最好的来源作为回答.
还要感谢使用单独的CSS文件的建议,或者不要担心它.我完全同意你的看法,对我来说,这些都是给予的.但是当遇到布局问题时,我想要一个安全的解决方案,这将最大程度地降低我在IE或$ FF + 1中重新审视问题的风险.抱歉,我没有说清楚.
C++模板通常被臃肿的创造者所吸收,而Shim的想法正是如此:使模板成为常规函数的薄包装.这是减少膨胀的一个非常好的方法.
例如,让我们使用一个简单的垫片:
//
// Shim interface
//
struct Interface {
virtual void print(std::ostream& out) const = 0;
}; // struct Interface
std::ostream& operator<<(std::ostream& out, Interface const& i) {
i.print(out);
return out;
}
template <typename T>
struct IT: public Interface {
IT(T const& t): _t(t) {}
virtual void print(std::ostream& out) const { out << _t; }
T const& _t;
};
template <typename T>
IT<T> shim(T const& t) { return IT<T>(t); }
Run Code Online (Sandbox Code Playgroud)
现在,我可以像这样使用它:
void print_impl(Interface const& t);
template <typename T>
void print(T …Run Code Online (Sandbox Code Playgroud) 所以我对它的实现方式感兴趣.基本上:我怎样才能自己重新实现同样的事情?......我不打算这样做.只是了解.
根本问题是:(?)如何拦截类实例化?如何在一个实例中替换它,在另一个实现中替换它的原始或甚至不同的实现?
如何拦截静态方法或密封类甚至是可能的.
这与垫片/痣有关,而不是存根.
我正在尝试使用JSPM 导入jQuery插件jQuery.scrollTo.
到目前为止我安装了它
jspm install npm:jquery.scrollto
Run Code Online (Sandbox Code Playgroud)
现在我正试图导入它
import $ from 'jquery';
import scrollTo from 'jquery.scrollto';
Run Code Online (Sandbox Code Playgroud)
现在我只是得到了
$(...).scrollTo is not a function
Run Code Online (Sandbox Code Playgroud)
错误.
我试着去填充它,但我以前从未这样做过,如果有必要的话,就找不到如何做的好解释.你能帮我或者给我一个很好的解释,我什么时候需要什么东西?
我能够为Array#includes找到一个polyfill(堆栈溢出)并将其添加到typescript但是在我的文件中添加一个小的导入后它变成了一个模块(我明白他们为什么要这样做导出,但为什么要导入)我再也无法修改全局命名空间了.
如何修复polyfill?
interface Array<T> {
includes(searchElement: T) : boolean;
}
// Add Array includes polyfill if needed
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes#Polyfill
if (!Array.prototype.includes) {
Array.prototype.includes = function(searchElement /*, fromIndex*/ ) {
'use strict';
var O = Object(this);
var len = parseInt(O.length, 10) || 0;
if (len === 0) {
return false;
}
var n = parseInt(arguments[1], 10) || 0;
var k;
if (n >= 0) {
k = n;
} else {
k = len + n;
if (k < 0) {k …Run Code Online (Sandbox Code Playgroud) 所以我正在Cordova建立一个Angular项目,我想知道是否有人知道如何在webpack中使用Cordova.
通常情况下,您cordova.js直接在index.html中引用,但我选择避免这种情况,并将其包含在捆绑包中,以便树摇动以及所有这些.不确定它是否合理,但我想我会问,因为谷歌已经失败了我.
我正在引用一个名为splashscreen的cordova插件,如下所示:
import * as splashscreen from 'cordova-plugin-splashscreen/www/splashscreen';
Run Code Online (Sandbox Code Playgroud)
但是这个插件需要cordova/exec:
var exec = require('cordova/exec');
Run Code Online (Sandbox Code Playgroud)
这是webpack失败的地方:
ERROR in ./~/cordova-plugin-splashscreen/www/splashscreen.js
Module not found: Error: Can't resolve 'cordova/exec' in './node_modules/cordova-plugin-splashscreen/www'
Run Code Online (Sandbox Code Playgroud)
所以我尝试调整webpack.config.js以获取webpack以了解cordova所在的位置:
let cordova;
let cordovaExec;
if (context.opts.platforms[0] === 'ios') {
cordova = './platforms/ios/platform_www/cordova';
cordovaExec = 'cordova-ios/cordova-js-src/exec';
}
else {
cordova = './platforms/android/platform_www/cordova';
cordovaExec = 'cordova-android/cordova-js-src/exec';
}
Run Code Online (Sandbox Code Playgroud)
然后是Webpack的ProvidePlugin:
new ProvidePlugin({
'cordova': cordova,
'cordova/exec': cordovaExec
})
Run Code Online (Sandbox Code Playgroud)
但错误仍然存在......
在Webpack方面我不是专家,所以有人知道解决方案,如果有的话?
我目前正在使用docker环境在生产中在AWS beantalk上部署应用程序(nodejs websocket服务器)。
定期地,容器“崩溃”(实际上,容器中的主要过程会重新启动),我不知道为什么。
/var/log/docker包含以下日志(在事件发生的确切时刻):
time="2018-12-07T00:48:46Z" level=info msg="shim reaped" id=0af18fa159c07b167a29012b34c6c925c877f98d9a09dcd67078aa6c12f4ef2f
time="2018-12-07T00:48:46.052832134Z" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
time="2018-12-07T00:48:46Z" level=info msg="shim docker-containerd-shim started" address="/containerd-shim/moby/0af18fa159c07b167a29012b34c6c925c877f98d9a09dcd67078aa6c12f4ef2f/shim.sock" debug=false pid=9192
Run Code Online (Sandbox Code Playgroud)
那时的CPU和RAM似乎还可以。有人有线索吗?
编辑 还有其他日志,但是我怀疑是这样的结果:
/var/log/nginx/error.log:
2018/12/07 00:48:45 [error] 4268#0: *10397 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: 172.31.43.209, server: , request: "GET /stream?s=000 HTTP/1.1", upstream: "http://172.17.0.2:80/stream?s=000", host: "..."
2018/12/07 00:48:45 [error] 4268#0: *1009 recv() failed (104: Connection reset by peer) while proxying upgraded connection, client: 172.31.43.209, server: , request: …Run Code Online (Sandbox Code Playgroud) 可能重复:
禁用JavaScript时IE6中的HTML5
我现在听到很多关于使用HTML5的讨论,只是依赖于javascript shim作为<IE8的后备.但是如果用户禁用了JavaScript,会发生什么?这是一个棘手的情况.html5垫片后备可能会出现回落吗?你对此事有何看法?
我想实现compareDocumentPosition.Resig 在这方面做了一个很好的开端.我已经把他的代码整理好了
function compareDocumentPosition(other) {
var ret = 0;
if (this.contains) {
if (this !== other && this.contains(other)) {
ret += 16;
}
if (this !== other && other.contains(this)) {
ret += 8;
}
if (this.sourceIndex >= 0 && other.sourceIndex >= 0) {
if (this.sourceIndex < other.sourceIndex) {
ret += 4;
}
if (this.sourceIndex > other.sourceIndex) {
ret += 2;
}
} else {
ret += 1;
}
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
这适用于Element但不适用于 …
所以我正在使用jquery.flot和jquery.flot.selection,因为define({...异步加载模块我遇到了问题,因为选择插件试图将自己推入$ .plot.plugins(这是创建的)通过jquery.flot)但在那一刻$ .plot.plugins仍未定义.
我发现require.config中的"shim"参数可以帮助我,但我没有运气...所以这里是破旧... jquery.flot创建$ .plot和jquery.flot.selection将自己添加到$ .plot.plugins
我试过的......
shim:{
'js/lib/jquery.flot':{
exports:'$.plot'
},
'js/lib/jquery.flot.selection':{
deps:['js/lib/jquery.flot']
}
}
Run Code Online (Sandbox Code Playgroud)
也
shim:{
'js/lib/jquery.flot.selection':['js/lib/jquery.flot']
}
Run Code Online (Sandbox Code Playgroud)
我的插件看起来像这样..
define(['jquery','lib/jquery.flot','lib/jquery.flot.selection'], function() {
(function($) {
// jQuery plugin definition
.....
Run Code Online (Sandbox Code Playgroud)
我也试过了
define(['jquery'],function(){
require[('js/lib/jquery.flot.selection'],function(){
//jQuery plugin definition
...
Run Code Online (Sandbox Code Playgroud)
我该怎么办???