小编str*_*ger的帖子

将"编译"为HTML作为内联样式

我正在编写电子邮件HTML模板,有些电子邮件客户端不支持<style>指定CSS.应用CSS的唯一选择是使用内联样式(style属性).是否有工具或库(Node.JS)用于将样式表应用于某些HTML并返回应用了样式的HTML?

该工具不必支持许多选择器; id,class和元素名称选择器应该足以满足我的需求.

需要的示例:

// stylesheet.css
a { color: red; }

// email.html
<p>This is a <a href="http://example.com/">test</a></p>

// Expected result
<p>This is a <a href="http://example.com/" style="color: red;">test</a></p>
Run Code Online (Sandbox Code Playgroud)

html css stylesheet node.js

32
推荐指数
3
解决办法
1万
查看次数

将eval()限制在狭窄的范围内

我有一个javascript文件,读取另一个文件,其中可能包含需要eval() - ed的javascript片段.脚本片段应该符合javascript的严格子集,这限制了它们可以做什么以及它们可以更改哪些变量,但我想知道是否有某种方法可以通过阻止eval在全局范围内查看变量来强制执行此操作.类似于以下内容:

function safeEval( fragment )
{
    var localVariable = g_Variable;

    {
        // do magic scoping here so that the eval fragment can see localVariable
        // but not g_Variable or anything else outside function scope

        eval( fragment );
    }
}
Run Code Online (Sandbox Code Playgroud)

实际的代码不需要看起来像这样 - 我对任何和所有带闭包的奇怪技巧都是开放的等等.但我确实想知道这是否可能.

javascript eval

31
推荐指数
4
解决办法
2万
查看次数

PHP正则表达式:什么是"偏移0的类"?

我试图使用简单的正则表达式和php preg_replace函数从字符串中删除所有标点符号,尽管我收到以下错误:

编译失败:仅在偏移0的类中支持POSIX命名类

我想这意味着我不能在偏移0的类之外使用POSIX命名类.我的问题是,当它表示"在偏移0的类中"时它意味着什么?

$string = "I like: perl";    

if (eregi('[[:punct:]]', $string))  
    $new = preg_replace('[[:punct:]]', ' ', $string); echo $new;
Run Code Online (Sandbox Code Playgroud)

php regex

27
推荐指数
2
解决办法
1万
查看次数

如何在旋转的矩形上执行碰撞检测?

好吧,我正在尝试编写一个程序,可以告诉我旋转到140度的30x100矩形中的任何点是否在旋转到200度的另一个30x100矩形内.

老实说,我甚至不知道从哪里开始.我想在进行正常计算之前重新旋转它们,但是它们仍然无法匹配.

我怎样才能做到这一点?

algorithm math geometry collision-detection

21
推荐指数
0
解决办法
2万
查看次数

如何将事件传递给C#中的函数?

我希望将事件传递给辅助函数.此函数将附加方法到事件.但是,我无法正确传递活动.我试过传递一个EventHandler<TEventArgs>.它编译,但事件没有附加(但仍然添加;它似乎是事件处理程序的副本).

例如,如果我有这个:

public event EventHandler<EventArgs> MyEvent;
Run Code Online (Sandbox Code Playgroud)

和助手功能:

public static void MyHelperFunction<TEventArgs>(EventHandler<TEventArgs> eventToAttachTo)
{
    eventToAttachTo += (sender, e) => { Console.WriteLine("Hello world"); };
}
Run Code Online (Sandbox Code Playgroud)

和来电者:

MyHelperFunction(MyEvent);
MyEvent(null, new EventArgs()); // Does nothing.
Run Code Online (Sandbox Code Playgroud)

c# delegates

20
推荐指数
1
解决办法
1万
查看次数

在replaceWith之后没有注册的事件

当我将replaceWith一个元素带出DOM时,然后replaceWith它返回,注册到它的事件不会触发.我需要保持完整的事件.

这是我的Javascript:

var replacement = $(document.createElement('span'));
var original = $(this).replaceWith(replacement);

replacement
    .css('background-color', 'green')
    .text('replacement for ' + $(this).text())
    .click(function() {
        replacement.replaceWith(original);
    });
Run Code Online (Sandbox Code Playgroud)

现场演示

在演示中,当您单击一个元素时,它将替换为另一个元素replaceWith.单击新元素时,将使用原始元素替换该元素replaceWith.但是,点击处理程序不再起作用(我认为它应该在哪里).

jquery events dom

19
推荐指数
1
解决办法
1万
查看次数

在C#中为接口属性添加'set'

我希望通过为该接口中的属性提供set访问器来"扩展"接口.界面看起来像这样:

interface IUser
{
    string UserName
    {
        get;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

interface IMutableUser : IUser
{
    string UserName
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要继承权.我不能复制的身体IUser进入IMutableUser并添加set访问.

这可能在C#中吗?如果是这样,怎么办呢?

c# inheritance interface

18
推荐指数
3
解决办法
1万
查看次数

HttpUtility.HtmlEncode不编码所有内容

我正在使用C#和.Net 3.5中的桌面客户端程序与Web服务器进行交互.我正在使用Fiddler来查看Web浏览器发送的流量,并模拟它.可悲的是,这台服务器已经很老了,对于charsets和utf-8的概念有点困惑.大多数情况下它使用Latin-1.

当我在包含"特殊"字符的Web浏览器中输入数据时,如"Ωπℵ♣♥♥♉♉♋♌♌♎♏♐♑♓♓",fiddler告诉我它们从浏览器传送到服务器如下: "&#9800; &#9801; &#9802; &#9803; &#9804; &#9805; &#9806; &#9807; &#9808; &#9809; &#9810; &#9811; "

但对于我的客户端,HttpUtility.HtmlEncode不会转换这些字符,而是将它们保留为原样.我需要打电话将"♈"转换为♈ 等等?

html c# encoding utf-8

17
推荐指数
3
解决办法
3万
查看次数

C++全局初始化顺序忽略依赖关系?

我认为我的问题最好在代码中描述:

#include <stdio.h>

struct Foo;

extern Foo globalFoo;

struct Foo {
    Foo() {
        printf("Foo::Foo()\n");
    }

    void add() {
        printf("Foo::add()\n");
    }

    static int addToGlobal() {
        printf("Foo::addToGlobal() START\n");

        globalFoo.add();

        printf("Foo::addToGlobal() END\n");

        return 0;
    }
};

Foo globalFoo;

int dummy = Foo::addToGlobal();

int main() {
    printf("main()\n");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

以上打印(使用gcc 4.4.3):

Foo::Foo()
Foo::addToGlobal() START
Foo::add()
Foo::addToGlobal() END
main()
Run Code Online (Sandbox Code Playgroud)

这是我的期望,似乎合乎逻辑.

但是,当我交换以下行时:

Foo globalFoo;
int dummy = Foo::addToGlobal();
Run Code Online (Sandbox Code Playgroud)

进入这个:

int dummy = Foo::addToGlobal();
Foo globalFoo;
Run Code Online (Sandbox Code Playgroud)

该计划输出以下内容:

Foo::addToGlobal() START
Foo::add()
Foo::addToGlobal() END
Foo::Foo()
main()
Run Code Online (Sandbox Code Playgroud)

似乎使用尚未构造的实例调用 …

c++

17
推荐指数
2
解决办法
1万
查看次数

使用CSS在视口中垂直居中

我希望<div>在视口(浏览器窗口)中垂直居中,而不需要使用Javascript(仅限纯HTML和CSS).我有几个限制:

  • div必须垂直于视口的中心. 方法我看到只支持在另一个内部支持<div>,这不是我想要的.
  • 高度div不详.

其他限制:

  • div必须靠右对齐.
  • div具有恒定的宽度.
  • div必须支持填充.
  • 其他元素将放在网页上.该div充当菜单.
  • div必须支持背景颜色/图像.

这让我接近我想要的,但不完全是:

#nav {
    position: fixed;
    right: 0;
    top: 50%;
}
Run Code Online (Sandbox Code Playgroud)

但是,导航的顶部位于导航的中间,而不是导航的中间.

是否有一些技术可以让我以div这些约束为中心?

css

16
推荐指数
2
解决办法
3万
查看次数