小编Cᴏʀ*_*ᴏʀʏ的帖子

Click事件不适用于动态生成的元素

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">

        $(document).ready(function() {

            $("button").click(function() {
                $("h2").html("<p class='test'>click me</p>")
            });   

            $(".test").click(function(){
                alert();
            });
        });

    </script>
</head>
<body>
    <h2></h2>
    <button>generate new element</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试图生成类名称的新标签test<h2>单击按钮.我还定义了一个与之关联的点击事件test.但事件不起作用.

有人可以帮忙吗?

jquery events

458
推荐指数
10
解决办法
49万
查看次数

HTML编码问题 - "Â"字符显示而不是"&nbsp;"

我有一个遗留应用程序只是开始行为不端,无论出于何种原因我不确定.它会生成一堆HTML,并由ActivePDF转换为PDF报告.

这个过程是这样的:

  1. 从DB中提取HTML模板,其中包含令牌(例如"~CompanyName~","~CustomerName~"等).
  2. 用真实数据替换令牌
  3. 使用简单的正则表达式函数整理HTML,该函数可以格式化HTML标记属性值(确保引号等,因为ActivePDF的渲染引擎只讨论属性值周围的单引号)
  4. 将HTML发送到创建PDF的Web服务.

在那个混乱的地方,HTML模板(&nbsp;s)中的不间断空格编码为ISO-8859-1,因此在浏览器(FireFox)中查看文档时它们会错误地显示为"Â"字符.ActivePDF会对这些非UTF8字符产生影响.

我的问题:既然我不知道问题出在哪里,也没有时间去研究它,是否有一种简单的方法可以重新编码或找到并替换坏字符?我已经尝试通过我扔在一起的这个小功能发送它,但它把它变成了gobbledegook并没有改变任何东西.

Private Shared Function ConvertToUTF8(ByVal html As String) As String
    Dim isoEncoding As Encoding = Encoding.GetEncoding("iso-8859-1")
    Dim source As Byte() = isoEncoding.GetBytes(html)
    Return Encoding.UTF8.GetString(Encoding.Convert(isoEncoding, Encoding.UTF8, source))
End Function
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:

我现在正在接受这个,虽然它似乎不是一个好的解决方案:

Private Shared Function ReplaceNonASCIIChars(ByVal html As String) As String
    Return Regex.Replace(html, "[^\u0000-\u007F]", "&nbsp;")
End Function
Run Code Online (Sandbox Code Playgroud)

html vb.net encoding utf-8 iso-8859-1

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

在JavaScript中捕获弹出窗口的关闭事件

我需要在弹出窗口(使用window.open)关闭之前执行一些操作.

类似的东西会很好:

var new_window = window.open('some url')
new_window.onBeforeUnload = function(){ my code}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

javascript dom-events

57
推荐指数
6
解决办法
10万
查看次数

始终可见的jQuery UI DatePicker

如何使用jQuery UI显示始终可见的datepicker小部件?

jquery-ui datepicker

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

如何在Java中使用自定义字体?

我用Java编写了一个程序,它使用一种特殊的字体,默认情况下在任何操作系统上都不存在.

在Java中是否可以将这种特殊字体添加到操作系统中?例如,在Windows中,将此字体复制到特殊的Fonts文件夹.

如果有可能,怎么样?

java fonts

44
推荐指数
4
解决办法
9万
查看次数

SQL Server - 当前用户名

我应该使用哪一个来记录用户所做的更新?

  1. SYSTEM_USER, 要么
  2. ORIGINAL_LOGIN(), 要么
  3. SUSER_SNAME()

t-sql sql-server

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

流畅的接口 - 方法链接

方法链接是我知道构建流畅接口的唯一方法.

这是C#中的一个例子:

John john = new JohnBuilder()
    .AddSmartCode("c#")
    .WithfluentInterface("Please")
    .ButHow("Dunno");

Assert.IsNotNull(john);

  [Test]
    public void Should_Assign_Due_Date_With_7DayTermsVia_Invoice_Builder()
    {
        DateTime now = DateTime.Now;

        IInvoice invoice = new InvoiceBuilder()
            .IssuedOn(now)
            .WithInvoiceNumber(40)
            .WithPaymentTerms(PaymentTerms.SevenDays)
            .Generate();

        Assert.IsTrue(invoice.DateDue == now.AddDays(7));
    }
Run Code Online (Sandbox Code Playgroud)

那么其他人如何创建流畅的界面.你是如何创造它的?需要什么语言/平台/技术?

language-agnostic oop design-patterns fluent-interface

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

以编程方式触发控件的事件

假设我有一个WinFoms项目.只有一个按钮(例如button1).

问题是:是否可以ButtonClicked通过代码触发事件而无需单击它?

c# events controls winforms

29
推荐指数
4
解决办法
8万
查看次数

使用实体框架dbset获取所有行

我想使用以下类型的语法从表中选择所有行

public IQueryable<Company> GetCompanies()
{
    return DbContext.Set<Company>()
    .// Select all
}
Run Code Online (Sandbox Code Playgroud)

请原谅我,因为我对EF完全不熟悉

c# entity-framework dbset

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

ASP.NET MVC和IE缓存 - 操纵响应头无效

背景

我试图帮助一位同事调试过去6个月来一直没有问题的问题.在最近部署ASP.NET MVC 2应用程序之后,FileResult强制用户打开或保存PDF文件的响应在客户端计算机上存在的问题足够长,以便PDF阅读器打开它们.

早期版本的IE(特别是6)是受影响的唯一浏览器.Firefox和Chrome以及较新版本的IE(> 8)都表现得如预期.考虑到这一点,下一节将定义重新创建问题所需的操作.

行为

  1. 用户单击指向操作方法的链接(具有href属性的普通超链接).
  2. action方法生成表示为字节流的PDF.该方法始终重新创建PDF.
  3. 在action方法中,标头设置为指示浏览器如何缓存响应.他们是:

    response.AddHeader("Cache-Control", "public, must-revalidate, post-check=0, pre-check=0");
    response.AddHeader("Pragma", "no-cache");
    response.AddHeader("Expires", "0");
    
    Run Code Online (Sandbox Code Playgroud)

    对于那些不熟悉标题的人不熟悉:

    一个.缓存控制:公共

    表示任何缓存都可以缓存响应,即使它通常只是非缓存或只能在非共享缓存中缓存.

    缓存控制:必须重新验证

    当高速缓存接收到的响应中存在must-revalidate指令时,该高速缓存必须在该条目变为陈旧后才能响应后续请求而不首先使用源服务器重新验证它

    C.缓存控制:预检(IE5引入)

    定义以秒为单位的间隔,在此之后必须检查实体的新鲜度.检查可能在用户显示资源后发生,但确保在下一次往返时缓存的副本将是最新的.

    d.缓存控制:后检查(IE5引入)

    定义以秒为单位的时间间隔,在此之后必须在向用户显示资源之前检查实体的新鲜度.

    Pragma:no-cache(确保向后兼容HTTP/1.0)

    当请求消息中存在no-cache指令时,应用程序应该将请求转发到源服务器,即使它具有所请求内容的缓存副本

    F.过期

    Expires entity-header字段给出了响应被视为过时的日期/时间.

  4. 我们从操作中返回文件

    return File(file, "mime/type", fileName);
    
    Run Code Online (Sandbox Code Playgroud)
  5. 向用户显示"打开/保存"对话框

  6. 单击"保存"按预期工作,但单击"打开"启动PDF阅读器,但是当读者尝试打开文件时,已存储的临时文件IE已被删除,因此它抱怨文件丢失(并且它是).

这里有六个其他应用程序使用相同的标题来强制Excel,CSV,PDF,Word和大量其他内容在用户,从来没有一个问题.

问题

  • 标题是否适合我们正在尝试的内容?我们希望文件暂时存在(获得缓存),但总是被新版本替换,即使请求可能相同).

在返回a之前,在action方法中设置响应头FileResult.我已经让我的同事尝试创建一个继承的新类,FileResult然后重写该ExecuteResult方法,以便它修改标题,然后base.ExecuteResult()改为 - 没有状态.

我预感到"0"的"Expires"标题是罪魁祸首.根据这篇W3C文章,将其设置为"0"意味着"已经过期".我确实希望它过期,我只是不希望IE在处理它的应用程序有机会打开它之前将其从文件系统中删除.

一如既往,谢谢!

编辑:解决方案

在进一步测试(使用Fiddler检查标头)时,我们发现我们认为设置的响应头不是浏览器解释的响应头.由于我自己并不熟悉代码,因此我没有意识到一个潜在的问题:标题在操作方法之外被踩到了.

尽管如此,我还是要打开这个问题.依然突出是这样的:有似乎是有出入Expires具有数值头 …

asp.net iis caching http-headers asp.net-mvc-2

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