我正在编写电子邮件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) 我有一个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)
实际的代码不需要看起来像这样 - 我对任何和所有带闭包的奇怪技巧都是开放的等等.但我确实想知道这是否可能.
我试图使用简单的正则表达式和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) 好吧,我正在尝试编写一个程序,可以告诉我旋转到140度的30x100矩形中的任何点是否在旋转到200度的另一个30x100矩形内.
老实说,我甚至不知道从哪里开始.我想在进行正常计算之前重新旋转它们,但是它们仍然无法匹配.
我怎样才能做到这一点?
我希望将事件传递给辅助函数.此函数将附加方法到事件.但是,我无法正确传递活动.我试过传递一个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) 当我将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.但是,点击处理程序不再起作用(我认为它应该在哪里).
我希望通过为该接口中的属性提供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#和.Net 3.5中的桌面客户端程序与Web服务器进行交互.我正在使用Fiddler来查看Web浏览器发送的流量,并模拟它.可悲的是,这台服务器已经很老了,对于charsets和utf-8的概念有点困惑.大多数情况下它使用Latin-1.
当我在包含"特殊"字符的Web浏览器中输入数据时,如"Ωπℵ♣♥♥♉♉♋♌♌♎♏♐♑♓♓",fiddler告诉我它们从浏览器传送到服务器如下: "♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ "
但对于我的客户端,HttpUtility.HtmlEncode不会转换这些字符,而是将它们保留为原样.我需要打电话将"♈"转换为♈ 等等?
我认为我的问题最好在代码中描述:
#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)
似乎使用尚未构造的实例调用 …
我希望<div>在视口(浏览器窗口)中垂直居中,而不需要使用Javascript(仅限纯HTML和CSS).我有几个限制:
div必须垂直于视口的中心. 方法我看到只支持在另一个内部支持<div>,这不是我想要的.div不详.其他限制:
div必须靠右对齐.div具有恒定的宽度.div必须支持填充.div充当菜单.这让我接近我想要的,但不完全是:
#nav {
position: fixed;
right: 0;
top: 50%;
}
Run Code Online (Sandbox Code Playgroud)
但是,导航的顶部位于导航的中间,而不是导航的中间.
是否有一些技术可以让我以div这些约束为中心?