小编jak*_*ake的帖子

Chrome开发工具暂停黑盒脚本中的异常

我有一个JavaScript文件,我在Chrome开发人员工具中使用了黑盒子,我将调试器设置为暂停未捕获的异常.但是,开发工具继续暂停黑盒子JS文件中未捕获的异常(见下面的截图).这是Chrome错误吗?或者是否还需要一个额外的步骤才能让Chrome停止在黑盒子脚本中暂停未捕获的异常?

在此输入图像描述

根据https://developer.chrome.com/devtools/docs/blackboxing:

blackbox脚本会发生什么?

从库代码抛出的异常不会暂停(如果启用了异常暂停)

所以这看起来像是一个错误,或者我忽略了一些明显的东西.

javascript google-chrome exception google-chrome-devtools

20
推荐指数
2
解决办法
717
查看次数

jQuery onload - .load() - 事件不能与动态加载的iframe一起使用

当用户单击按钮时,我的脚本会加载iframe.我想在iframe加载后调用另一个函数,但它不起作用.iframe确实正常加载,但iframe完成加载后永远不会调用.load()事件.iframe包含来自同一网站的内容(无外部内容).奇怪的是,我在我的代码中的其他几个点使用了下面描述的相同技术,它运行得很好.谁能建议我接下来应该检查什么?

这是相关的代码:

$('#myIframe').load(function () {
    alert('iframe loaded');
});

$('#someButton').live('click', function () {
    $('body').append($('<iframe id="myIframe" src="https://www.mywebsite.com" width="100%"></iframe>'));
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

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

使用Swiftmailer的多个附件

我正在创建一个允许上传多个文件的表单.然后将表单字段值和附件通过电子邮件发送到特定地址.我正在使用Swiftmailer生成这些电子邮件.我知道如何使用Swiftmailer附加文件,但我不知道如何附加多个文件.有人知道使用Swiftmailer是否可行吗?

php email swiftmailer

12
推荐指数
1
解决办法
8119
查看次数

如何防止jQuery在XML对象中插入'xmlns'属性?

我一直在使用$.parseXML()jQuery 1.5 的新方法.每当我将新元素插入XML对象时,该新元素将自动获取值为"http://www.w3.org/1999/xhtml"的"xmlns"属性.例如,请参阅下面的代码段:

var myXml = "<one attr='a'><two attr='b'/><three attr='c'><four attr='d'/></three></one>";
myXml = $.parseXML(myXml);
$(myXml).find('three').append($('<five>some value</five>'));
Run Code Online (Sandbox Code Playgroud)

代码创建以下元素:

<five xmlns="http://www.w3.org/1999/xhtml">some value</five>
Run Code Online (Sandbox Code Playgroud)

如何防止jQuery插入'xmlns'属性?我已经尝试过使用这种.removeAttr()方法,但即使这样也没有用.有任何想法吗?

更新:用户nrabinowitz提供的建议有助于解决此问题.将xlmns属性添加到顶级元素确实会阻止xlmns属性自动分配给每个新元素.不过,我为我的特定节目选择了另一种解决方案..replace()在我将XML对象转换回字符串(显示在网页上)之后,我改为使用该方法删除所有xlmns属性.

html javascript xml jquery

10
推荐指数
1
解决办法
3017
查看次数

在特定字符长度之后使用jQuery将文本框替换为<textarea>

在用户键入一定数量的字符后,我使用下面的简单代码将textbox(<input type=text />)替换为<textarea>元素.在下面的示例中,这发生在第10个字符之后.该代码有效,但<textarea>省略了用户键入的第10个字符的内容.例如,如果在文本框中键入"testing 1234",则textarea将省略"4".有任何想法吗?谢谢.--Jake

    $('.info').keypress(function() {
    var count = $(this).val().length;
    if (count > 10)
    {
        var contents = $(this).val();
        $(this).after('<textarea></textarea>').next().val(contents).end().remove()
    }
})
Run Code Online (Sandbox Code Playgroud)

更新:我尝试了许多人分享的建议:使用keyup事件.它有效,但只有你慢慢输入.如果你是一个快速的typer,就像我怀疑这里的大多数人一样,使用keyup事件时仍然会省略第10个字符.

html jquery keypress

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

通过 Web Scraping 提取 JavaScript 变量值

对于公司项目,我需要使用 PHP 和 JavaScript(包括 jQuery)创建一个 Web 抓取应用程序,该应用程序将从我们客户网站的每个页面中提取特定数据。抓取应用程序需要为每个页面获取两种类型的数据:1) 确定是否存在具有特定 ID 的某些 HTML 元素,以及 2) 提取特定 JavaScript 变量的值。JS变量名在每个页面上都是一样的,但是值通常是不同的。

我相信我知道如何获得第一个数据要求:使用 PHP file_get_contents() 函数获取每个页面的 HTML,然后使用 JavaScript/jQuery 解析该 HTML 并搜索具有特定 ID 的元素。但是,我不确定如何获取第二个数据 - JavaScript 变量值。甚至在每个页面的 HTML 中都找不到 JavaScript 变量;相反,它位于链接到页面的外部 JavaScript 文件中。即使 JavaScript 嵌入在页面的 HTML 中,我也知道 file_get_contents() 只会提取 JavaScript 代码(和其他 HTML)而不是任何变量值。

任何人都可以提出一种为给定网站的每个页面获取此变量值的好方法吗?

编辑:只是为了澄清,在运行 JavaScript 代码后,我需要 JavaScript 变量的值。这样的事情甚至可能吗?

javascript php ajax jquery web-scraping

6
推荐指数
2
解决办法
5999
查看次数

无法在jQuery XML对象中插入元素

我正在使用新的$ .parseXML()方法和jQuery 1.5将字符串解析为有效的XML对象.一旦我将字符串转换为jQuery XML对象,我就能够导航XML的DOM并查找值.我甚至可以改变不同属性的值.但是,我无法在XML中插入新元素,即使我认为这应该是可能的.以下是说明问题的代码段:

var myXml = "<one attr='a'><two attr='b'/><three attr='c'><four attr='d'/></three></one>";
myXml = $.parseXML(myXml);
$(myXml).find('two').attr('attr','new value'); //<-- This works
alert($(myXml).find('two').attr('attr')); //<-- This works too
$(myXml).find('three').append('<five>some value</five>'); //<-- Does not work
alert($(myXml).find('five').text()) // <--Null
Run Code Online (Sandbox Code Playgroud)

有没有人有关于使这项工作的想法?提前致谢.

html javascript xml jquery

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

ember-cli支持Handlersars @vars in each helper(即@index,@ key,@ first,@ are)

每当我有一个使用@vars变量(即@ index,@ key,@ first,@ pop)的Handelbars模板时,我就会在ember-cli中收到编译错误.(有关每个帮助程序中这些@vars变量的文档,请参阅http://handlebarsjs.com/#iteration.)下面是一个使用ember-cli构建的简单应用程序,只包含两个添加到程序中的文件:routes/application.js和templates/application.hbs.在这篇文章的底部是ember-cli给出的编译错误消息的屏幕截图.我的代码中有错误吗?或者这是我应该在github上报告的错误@ https://github.com/stefanpenner/ember-cli

路线/ application.js中

export default Ember.Route.extend({
    model: function() {
        return ['red', 'blue', 'green'];
    }
});
Run Code Online (Sandbox Code Playgroud)

模板/ application.hbs

{{#each model}}
  {{@index}}: {{this}}
{{/each}}
Run Code Online (Sandbox Code Playgroud)

ember-cli编译错误消息的屏幕截图: ember-cli编译错误消息的屏幕截图

以下是涉及的各种工具的版本:

  • ember-cli:0.0.40
  • 节点:0.10.30
  • npm:1.4.21
  • 把手:1.3.0
  • 恩伯:1.6.1

javascript handlebars.js ember.js ember-cli

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

Ember.JS集成测试问题与andThen并单击帮助程序

我得到与Ember的测试助手奇怪的结果andThenclick.根据Ember的文件:

andThen助手将等待所有先前的异步助手之前进步向前来完成.

但是,我发现这似乎并非总是如此.在下面的示例中,有3个console.debug语句.我希望它们按照A - > B - > C的顺序记录.但是我一直得到这个顺序:A - > C - > B.当我只使用两次点击中的一次时,我只能获得预期的ABC顺序助手.没有与<div>单击助手中引用的元素关联的事件侦听器(操作).

谁能解释这种意想不到的行为?我使用助手时是否有错误?或者是Ember测试框架的错误?

andThen(function() {
    console.debug('mark A');

    click('div:first'); // with just 1 click helper, debug order is ABC
    click('div:first'); // with this second click helper, debug order is ACB

    andThen(function() {
        console.debug('mark B');
    });
});

andThen(function() {
    console.debug('mark C');
});
Run Code Online (Sandbox Code Playgroud)

编辑:

基于Kingpin2k给出的答案,我最终寻求以下解决方案来获得我正在寻求的测试风格.

首先,我创建了一个名为的异步测试助手next.其次,我用andThen自定义next助手替换了我的代码中的所有助手.这允许我的代码按照我期望的顺序运行.

// test-helper.js
Ember.Test.registerAsyncHelper('next', function(app, fn) …
Run Code Online (Sandbox Code Playgroud)

javascript integration-testing ember.js

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

jQuery解析HTML存储在变量中吗?

我正在使用PHP和ajax命令来获取外部网页的整个HTML内容(通过PHP file_get_contents()命令)并将该HTML传递到javascript变量中.一旦我将页面的HTML内容存储在变量中,我可以使用jQuery与该变量的内容进行交互,就像jQuery通常与DOM交互一样吗?在这个例子中,我试图搜索具有特定ID属性的某些HTML元素(<div><script>标签)的存在.任何人都可以建议我如何做到这一点?

javascript ajax jquery

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

jQuery:.filter()返回的元素少于预期?

我正在使用PHP和ajax命令来获取外部网页的整个HTML内容(通过PHP file_get_contents()命令)并将该HTML传递到javascript变量中.使用该变量中的HTML内容,我现在尝试选择并提取该变量中的某些元素.我尝试使用这个.filter()功能,例如

 $(myHTML).filter('#someID').doStuff();
Run Code Online (Sandbox Code Playgroud)

但该.filter()命令似乎没有准确过滤我的选择.

它适用于某些情况

$(myHTML).filter('title').text();
Run Code Online (Sandbox Code Playgroud)

但是在尝试选择多个元素时它似乎不起作用.例如,如果我尝试计算所有<div><a>标签的数量,我会一直变为零

alert($(myHTML).filter('a').length)
Run Code Online (Sandbox Code Playgroud)

即使<a>这个例子中有75个标签.

尝试计算所有<div>标记时也会发生同样的情况:上面的代码只返回零.

任何人都可以解释为什么会这样,以及我可以做些什么来解决这个问题?

javascript ajax jquery

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

jQuery:使用绑定和单击方法的问题

知道为什么这个点击事件不起作用?(我确定答案很明显 - 我只是没有看到它).

<html>
    <head>
        <title></title>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('h1').bind('click', function(){
                    alert('clicked');
                });
            )};
        </script>
    </head>
    <body>
        <h1>This is a test.</h1>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

编辑:@Stefan:感谢你抓住这个错字.我需要记住下一次打开萤火虫.谢谢你建议jsfiddle.net.看起来像一个很酷的网站.

javascript jquery

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

jQuery问题:函数不适用于新创建的HTML元素

我有两个函数:一个<textarea>在单击按钮时创建一个新函数,另一个函数在<textarea>单击(或模糊,更改等)时执行操作.第二个函数根据类名选择元素.似乎第二个函数仅适用于加载页面时存在的匹配元素,但它不会在任何新创建的<textarea>元素上激活.谁能弄清楚为什么以及如何解决这个问题?你会在下面找到代码.谢谢.--Jake

$('#add').click(function() {
    $(this).before("<textarea class='test'></textarea>")
})

$('.test').blur(function () {
    alert('just a test')
})
Run Code Online (Sandbox Code Playgroud)

html javascript jquery jquery-selectors

0
推荐指数
1
解决办法
353
查看次数