小编Jos*_*eph的帖子

抛出JS后继续执行

我在我的代码中有这个功能,我throw用来创建有意义的错误(而不是默默地失败).但是,当我以这种方式构造我的函数时,如果我调用defineSandbox()错误,它会停止整个脚本.

//defineSandbox is in an object, for now i name "myObj"

var defineSandbox = function (sandboxName,SandboxDefinition) {

    //validation
    if(!is.validString(sandboxName)) {
        throw statusMessages.sandbox.invalidName;
    }
    if(!is.validFunction (SandboxDefinition)) {
        throw statusMessages.sandbox.invalidDefinition;
    }

    //...some more validation here

    //...sandbox builder code if validation passes (code wasn't returned)

    registered.sandboxes[sandboxName] = newSandbox;
};

//intentional error, non-string name
myObj.defineSandbox(false);                        

//...and so the rest of the script from here down is not executed  

//i can't build this sandbox anymore
myObj.defineSandbox('mySandbox',function(){...});  
Run Code Online (Sandbox Code Playgroud)

我想要的是,如果一个调用失败,它会发出错误但仍尝试继续运行该脚本.我如何构造这个代码,以便我可以实现这一点?

javascript error-handling

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

"异步"循环遍历javascript中的对象

通常,我们可以为数组和对象执行循环以迭代属性/值.但循环阻塞.但是,超时可用于模拟异步循环.我设法为阵列做了.

//do stuff

(function asyncLoop(i){

    //do stuff in the current iteration

    if(++i < array.length){
        setTimeout(function(){asyncLoop(i);}, 1);
    } else {
        callback();
    }
}(0));

//do stuff immediately after, while looping
Run Code Online (Sandbox Code Playgroud)

但是这个模型只有在数组中循环时才有效,其中有一个限制器 - i它会被传递.有没有办法在一个对象上做这个?让我们说这个对象有50k键来迭代,使它不合理地长.

我已经知道这个setImmediate(afaik,只有更新的IE)和WebWorkers(还没有在IE中),但我只是想知道是否可以在一个对象上使用相同的策略.

javascript asynchronous

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

jquery - 谁是我的父听众?

$(".cblClaimSources").on('click', ':checkbox', function (){
    alert('im : '+ $(this).attr('id') + ' and my Parent listener is '+ ?????);
});
Run Code Online (Sandbox Code Playgroud)

是否有可能insider $(this)知道谁是其倾听者的父母?[ $(".cblClaimSources")]?

javascript jquery

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

"var_dump"函数

通过函数名称本身,var_dump()转储有关提供的参数的所有内容,除了对象的功能.

是否存在抛弃这些功能的方法?

php debugging function server-side

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

用Java运行JavaScript

我有一个javaScript标记:

<!-- Begin ParsTools.com Prayer Times Code -->
<script type="text/javascript" language="javascript" src="http://www2.parstools.com/oghat/oghatwhite.php"></script>
<script language="javascript">
    var CurrentDate= new Date(); 
    var JAT= 1;  
    function pz() {};
    init();
    document.getElementById("cities").selectedIndex=12;
    coord();
    main();
</script>
<!-- End Prayer Times code -->
Run Code Online (Sandbox Code Playgroud)

我想在java中运行此脚本并接收服务器响应的html文档.我怎样才能做到这一点?我还需要解析收到的文档并提取一些特殊标记.

谢谢.

html javascript java

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

使用jQuery过滤输入文本

我想过滤并锁定输入文本.例如,在某些输入中,用户只能键入波斯语/波斯语字符而不能输入英语,或者用户可以键入英语而不能输入波斯语.意味着某些输入仅接受波斯语/波斯语字符,而其他输入仅接受英语.

我也发现了这个http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input.如果知道任何波斯语字符的常规表现可以帮助我或如何更改键盘模式.

谢谢.

javascript jquery filtering html-input

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

如何将函数绑定到通过Ajax加载的Element

我的页面中有几个Divs,CSS class ="hello"此外我使用Ajax来获取更多带有CSS class ="hello"的Div.我有一段代码,它被调用Divs的Click事件作为如下:

$('.hello').click(function(){
  alert("Hello Clicked");
})
Run Code Online (Sandbox Code Playgroud)

它适用于我的页面中从一开始就存在的Div,但不适用于使用Ajax加载的Div.有没有什么我需要做的,以便将这一小段代码绑定到新加载的Divs?

html javascript ajax jquery

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

document.write和委托事件处理程序持久性

我只是测试使用JavaScript与其他页面替换整个页面,我发现这个答案document.write.至于为什么document.write,我需要使用同一页面替换整个HTML,包括脚本和样式.

它做我想要的但我似乎无法与我的事件处理程序保持一致.我的处理程序都附属于document使用:

$(document).delegate(...);
Run Code Online (Sandbox Code Playgroud)

目前,我有奇怪的结果.在我制作的小提琴中,它附加了一个处理程序.单击时,事件将触发,重写页面,再次运行该函数 - 但它不会附加处理程序.

但是在我的项目中,我正在执行相同的例程(d.w()然后添加处理程序).它确实重新连接一次并且处理程序工作,但在执行第二个例程(仍然在同一页面上)之后,它不再附加.

所以我的问题是:

  • 使用时d.w(),现有的处理程序是否会被删除document
  • 是否window以及document随后的后同d.w()S' 或者他们以某种方式"更新"
  • 已解析的脚本是否会留在内存中,并在后续的d.w()s 后运行?或者它们也会被删除?

javascript

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

node-static无法提供当前文件夹上方的文件夹

我不知道这是一个限制,node-static还是我的代码中的错误,但我似乎无法提供它来提供当前目录之上或之外的文件.我目前的目录结构是这样的:

project
    public
        ...public stuff here...
    system
        core
           server.js
Run Code Online (Sandbox Code Playgroud)

server.js生活在core目录中,使路径public../../public- 但此代码将无法运行.它返回404.

staticServer = new (static.Server)('../../public');

webServer = http.createServer(function (request, response) {
    staticServer.serve(request,response);
})

webServer.listen(appServerConfig.port, appServerConfig.address);
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改结构以使公共文件夹位于旁边server.js并相应地更改代码,则它可以工作:

project
    system
        core
           server.js
           public
               ...public stuff here...


staticServer = new (static.Server)('./public');

webServer = http.createServer(function (request, response) {
    staticServer.serve(request,response);
})

webServer.listen(appServerConfig.port, appServerConfig.address);
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

javascript node.js node-static

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

Javascript回调 - 为什么这些处理顺序不同?

在这个例子中,第二个函数是第二个:

<script>
function first (callback){
    alert ("I am first");
    callback();
}

function second (){
    alert ("I am second");
}

first(second);
</script>
Run Code Online (Sandbox Code Playgroud)

但在此示例中,首先处理第二个函数.为什么在调用第二个之后添加()会产生影响....

<script>
function first (callback){
    alert ("I am first");
    callback();
}

function second (){
    alert ("I am second");
}

first(second());
</script>
Run Code Online (Sandbox Code Playgroud)

javascript callback

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