标签: shim

可接受的CSS黑客/修复

是否有一个'好'干净的CSS黑客列表,这肯定是面向未来的?

例如,zoom:1安全,只要它只提供给IE,你就会记得它在那里.使用子选择器的常见黑客并不安全,因为IE7支持它们.使用height:1%只是感觉很脏(但可能只是我).

我知道ie7-js,所以IE6的bug不用担心我.此外,我不是在寻找宗教辩论,只是消息来源.


感谢回复 - 我选择了最好的来源作为回答.

还要感谢使用单独的CSS文件的建议,或者不要担心它.我完全同意你的看法,对我来说,这些都是给予的.但是当遇到布局问题时,我想要一个安全的解决方案,这将最大程度地降低我在IE或$ FF + 1中重新审视问题的风险.抱歉,我没有说清楚.

css shim css-hack

7
推荐指数
1
解决办法
1823
查看次数

在可变参数模板中使用填充程序的更简洁方法?

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)

c++ shim variadic-templates c++11

7
推荐指数
1
解决办法
675
查看次数

微软伪造的垫片实际上如何在内部工作?

所以我对它的实现方式感兴趣.基本上:我怎样才能自己重新实现同样的事情?......我不打算这样做.只是了解.

根本问题是:(?)如何拦截类实例化?如何在一个实例中替换它,在另一个实现中替换它的原始或甚至不同的实现?

如何拦截静态方法或密封类甚至是可能的.

这与垫片/痣有关,而不是存根.

.net c# shim moles microsoft-fakes

7
推荐指数
1
解决办法
905
查看次数

使用JSPM导入jQuery插件

我正在尝试使用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)

错误.

我试着去填充它,但我以前从未这样做过,如果有必要的话,就找不到如何做的好解释.你能帮我或者给我一个很好的解释,我什么时候需要什么东西?

jquery plugins shim jspm

7
推荐指数
1
解决办法
3453
查看次数

如何在打字稿(模块)中向Globals添加polyfill

我能够为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)

shim polyfills typescript

7
推荐指数
2
解决办法
8867
查看次数

Webpack 2+,如何填充Cordova

问题

所以我正在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方面我不是专家,所以有人知道解决方案,如果有的话?

shim cordova webpack angular

7
推荐指数
0
解决办法
357
查看次数

AWS Beanstalk泊坞窗异常:“ Shim收获”

我目前正在使用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)

shim amazon-web-services docker amazon-elastic-beanstalk

7
推荐指数
1
解决办法
800
查看次数

HTML5垫片后备?

可能重复:
禁用JavaScript时IE6中的HTML5

我现在听到很多关于使用HTML5的讨论,只是依赖于javascript shim作为<IE8的后备.但是如果用户禁用了JavaScript,会发生什么?这是一个棘手的情况.html5垫片后备可能会出现回落吗?你对此事有何看法?

javascript html5 fallback shim

6
推荐指数
1
解决办法
3611
查看次数

跨浏览器比较文档位置

DOM4 compareDocumentPosition

我想实现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但不适用于 …

javascript shim internet-explorer-8 dom4

6
推荐指数
1
解决办法
1941
查看次数

要求shim setup-jquery.flot/jquery.flot.selection

所以我正在使用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)

我该怎么办???

javascript flot shim requirejs

6
推荐指数
1
解决办法
2253
查看次数