小编Bil*_*oon的帖子

结合jQuery和Zen-Coding php端口,在服务器端脚本上模拟客户端编程风格

当我编写客户端代码时,我使用HTML/CSS/JavaScript和最近的jQuery来加速编码,并使用改进的方法来实现相同的目标.

在我的文本编辑器中,我使用zen-coding来加速代码编写,并避免错误.我暂时将zen-coding视为一个jQuery插件,但它有一个致命的缺陷,你希望在任何javascript开始之前编写HTML并将其发送到客户端.

虽然我们可以使用JavaScript服务器(env.js或node.js),因此使用JavaScript和jQuery做了很多开发服务器端,但我不喜欢移动它,因为它是一种新兴技术,并且有很多不同和缺点(还有一些主要优点).

我想继续使用PHP服务器端,但以我最熟悉的方式开发,熟悉哪个是客户端JavaScript.

因此 - 我一直在研究QueryPath,这是一个jQuery的PHP端口,旨在获取jQuery的最佳和最相关的部分,并重新设计它以适应服务器环境.

这一切都很棒,我现在一直在研究两个能够解析zen编码的PHP类,它们在组合时可以作为一个很好的模板引擎,也可以避免代码中的错误.

我遇到的问题是zen编码解析器都不支持任何接近完整的zen编码功能集.

所以最后我的问题(抱歉相当冗长的介绍)

  1. 我可以在我的PHP代码中使用更好的服务器端zen编码解析器吗?
  2. 是否有一个好的(非常简洁和全功能)替代模板系统使用禅编码?(我知道这不是最初为此任务设计的)
  3. 有没有更好的方法来实现我的最终目标,即缩小我编码客户端和服务器端的方式之间的界限?
  4. 是否有一个PHP库实现了大量的实用程序函数,通过使用它将增强我的代码的安全性/性能,而无需我学习所有内部工作?(就像jQuery为javascript做的那样)

注意:我正在寻找功能等同而不是句法相似性 - 尽管两者对我来说都是一个加分.

这是一些注释的测试代码,应该阐明我想要实现的目标:

<?php

    // first php based zen-coding parser
    // http://code.google.com/p/zen-php
    require_once 'ZenPHP/ZenPHP.php';
    // my own wrapper function
    function zp($abbr){ return ZenPHP::expand($abbr); }

    // second php based zen-coding parser
    // https://github.com/philipwalton/PW_Zen_Coder
    require_once 'PW_Zen_Coder/PW_Zen_Coder.php';
    $zc = new PW_Zen_Coder;
    // my own wrapper function
    function pwzc($abbr){ global $zc; return $zc->expand($abbr); }

    // php port of jQuery with a new server-side flavor
    // http://querypath.org/
    require_once 'QueryPath/QueryPath.php';

    // …
Run Code Online (Sandbox Code Playgroud)

javascript php jquery querypath emmet

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

html()函数之后的jquery事件

有没有办法在html()被触发后启动一个事件?如:

$.post("ajax.php", {data :data}, function(data){
   $("#countries").html(data, function(){
      alert("test");
   });
});
Run Code Online (Sandbox Code Playgroud)

这不起作用.

编辑:我问这个是因为我想做一些事情(另一个电话)来自呼叫的信息...我想简化示例...我想程序员总是想知道为什么...

所以这里是更新的例子

 $.post("ajax.php", {data :data}, function(data){
   $("#countries").html(data, function(){
        var id = $("#countries option:selected").attr("id");
        getRegions(id);
   });
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery events

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

加密的JavaScript实现包括合理的否定性

是否有加密的javascript实现,包括合理的否定?

我想要展示这里描述的功能的东西:http://en.wikipedia.org/wiki/Deniable_encryption

可拒绝加密允许加密邮件的发件人拒绝发送该邮件.这需要值得信赖的第三方.可能的情况如下:

  1. 爱丽丝是鲍勃的妻子,他怀疑他的妻子正在通奸.她想和她的秘密情人卡尔沟通.她创造了两把钥匙,一把打算保密,另一把打算牺牲.她将秘密密钥(或两者)传递给卡尔.
  2. 爱丽丝构建了卡尔无害消息M1(打算透露给鲍勃在发现的情况下)和罪证情书M2卡尔.她从消息M1,M2中构造了密文C并将其通过电子邮件发送给Carl.
  3. Carl使用他的密钥解密M2(也可能是M1,以便读取假邮件).
  4. 鲍勃发现有关给卡尔的电子邮件,变得可疑并强迫爱丽丝解密邮件.
  5. Alice使用牺牲密钥并向Bob显示无害消息M1.由于Bob不知道另一个密钥,他必须假设没有其他消息M2.

javascript

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

Javascript日期格式,如ISO但本地

如何格式化ISO格式的javascript日期,但在当地时间?

myDate.toISOString()我收到时间:"2012-09-13T19:12:23.826Z"

但是在这里,它是22:13,那么我如何在上面的格式中包含时区?


我最后做了......

pad=function(e,t,n){n=n||"0",t=t||2;while((""+e).length<t)e=n+e;return e}
c = new Date()
c.getFullYear()+"-"+pad(c.getMonth()+1)+"-"+pad(c.getDate()-5)+"T"+c.toLocaleTimeString().replace(/\D/g,':')+"."+pad(c.getMilliseconds(),3)
Run Code Online (Sandbox Code Playgroud)

javascript

10
推荐指数
5
解决办法
3516
查看次数

区块链API用于确定交易确认

我正在尝试确定比特币区块链中的交易是否已经确认.我使用此url从blockchain.info访问了该事务的JSON表示:https://blockchain.info/tx/62f9419e56ac1b628840aaf52307867f9856d7a52b3c1d945a9938a3021cbf2c?show_adv = false&format = json

我在响应中找不到任何表明它有多少确认的内容......

{"block_height":221580,"time":1361068368,"inputs":[{"prev_out":{"n":0,"value":100000000,"addr":"1NaPjDPGcfaVCBd3cTmy4zEPjRbDwzkW49","tx_index":53213157,"type":0}},{"prev_out":{"n":0,"value":100000,"addr":"1FDBdn8cseukiteu1myGQCfgYnncdMNpFk","tx_index":53252395,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"13QRi4W5bq3FWrNGrWGcF1dH4mSWD6Huun","tx_index":52575903,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"1MhEJx1BodWATGxoZ7az3GnmUQwx2adCG2","tx_index":53376409,"type":0}},{"prev_out":{"n":1,"value":90000000,"addr":"1FosGa87ZSjoagVu1j8djiJKzUeLkhhp6P","tx_index":53308634,"type":0}},{"prev_out":{"n":0,"value":200000,"addr":"1DZzEunCP1SxBsz2aZah2q9WAFuYSsDrq9","tx_index":53272656,"type":0}},{"prev_out":{"n":1,"value":98500000,"addr":"19q8NEgZKQcQMMx5z16JETbe1bx6StNZfj","tx_index":53506579,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"15LXjh36usUspAYsGnhURVEnPn86W7SPSu","tx_index":53532799,"type":0}},{"prev_out":{"n":1,"value":119000000,"addr":"1PNbeqfPgMjjL6sLdXqkNZyCSkGFHop3bz","tx_index":53492488,"type":0}},{"prev_out":{"n":1,"value":150000000,"addr":"153hqmnNqUM8RGWdLE12tj74aAyS9U2pe7","tx_index":53283295,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"149BGgDjaMyYfYnrja4asYtuUnpsBjobnH","tx_index":53440208,"type":0}},{"prev_out":{"n":167,"value":35000,"addr":"1F3eAsYGC45s2Q8XiE7ywGXMr8QLB8FTCD","tx_index":53578752,"type":0}},{"prev_out":{"n":862,"value":5000,"addr":"1CD4Dcy3yUiBejmQX1hKfJi1y5ysAX9RwZ","tx_index":53578752,"type":0}},{"prev_out":{"n":0,"value":60000000,"addr":"1Q7hDXko9U8MxoAZGmYk2se6tf8WFSQbUK","tx_index":53305081,"type":0}},{"prev_out":{"n":1,"value":98000000,"addr":"1RuMjWETvUPAUqfJKhZ4GBo5tKuszbDTA","tx_index":53521527,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"17rBkeKtc7APY5PQjbicBbucfaUA1PZSpm","tx_index":53511134,"type":0}},{"prev_out":{"n":0,"value":169216027,"addr":"1EBz5v7dJfBPJzSwivVQcY19eT5hUBxa8w","tx_index":53194652,"type":0}},{"prev_out":{"n":1,"value":80000000,"addr":"1KLn85reRxN1JZL1S3gD2Kp2x8LZ14rz6S","tx_index":53194567,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"1EppQ2h8Ddvp1vsoSb2DLJqJAws2DrYnv9","tx_index":53190665,"type":0}},{"prev_out":{"n":174,"value":2,"addr":"1CDDR1vZtZPWc48v4brHmka3tDpXbuT9wd","tx_index":53620404,"type":0}},{"prev_out":{"n":1,"value":100000000,"addr":"12zQxFPPh5rsUyakdZZyADj2N5bFRFZRcd","tx_index":53540021,"type":0}},{"prev_out":{"n":1,"value":801624197,"addr":"1JEjtpHB7aZJm3QSRp76qQqchFfs4TjDeE","tx_index":53526428,"type":0}},{"prev_out":{"n":1,"value":100000000,"addr":"1K1Sn9V775d7i94voiYLLUSaFNUQ9BVj9Q","tx_index":53430153,"type":0}},{"prev_out":{"n":1156,"value":1,"addr":"1CxXkpmJ9Nr4S9b3rKeKU5WWLXGp5nv553","tx_index":53619724,"type":0}},{"prev_out":{"n":0,"value":99950000,"addr":"1Hp5GdoX4oXmjUD6ZRKvXNJQCZp2sk712c","tx_index":53229930,"type":0}},{"prev_out":{"n":1,"value":98000000,"addr":"12aqif4GXBd17N6EFj4onrHLd8febY4n6j","tx_index":53160076,"type":0}},{"prev_out":{"n":0,"value":357452267,"addr":"146eveRJD2YnxvNBw4hHtZn8xR3LHHVxtH","tx_index":53651895,"type":0}},{"prev_out":{"n":1,"value":60000000,"addr":"1FZximueHPa9sqTZSg2Q4LAsg91dZaJK5D","tx_index":53640062,"type":0}},{"prev_out":{"n":1,"value":100000000,"addr":"12VL7U1BLf8kLrkN3sca9w5dGVhVAy1kvD","tx_index":53578503,"type":0}},{"prev_out":{"n":0,"value":67315003,"addr":"1BbYNxYAGJJJz6wP4pK5eHmwcieRSiPDZm","tx_index":53437082,"type":0}},{"prev_out":{"n":1,"value":100000000,"addr":"1DoTTLAs5VUm2QHBXeL34h2kSfYnqSpsCj","tx_index":53116751,"type":0}},{"prev_out":{"n":1,"value":195951000,"addr":"1Epje2MuDrckP4zVJmRXyEu5jWby2MvgHy","tx_index":53599874,"type":0}},{"prev_out":{"n":25,"value":1,"addr":"1CdACYi1JQDGekGPPc8bd3vq5d5v6s2KKY","tx_index":53620401,"type":0}},{"prev_out":{"n":105,"value":2,"addr":"15dsKW8yotixATZdDomBkRJh7YvzJJ4z7X","tx_index":53620401,"type":0}},{"prev_out":{"n":1,"value":90000000,"addr":"17ra7TQoPSmrxvLXGhupexd3Dk9fnZLM8Q","tx_index":53675760,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"1Fm2j4k7XK8veWdeJaxDuZdujdQQh3mj9j","tx_index":53696368,"type":0}},{"prev_out":{"n":39,"value":1500,"addr":"1PB3DrsvvTMkxv7AoV5FdMAVbrnv1R9AvF","tx_index":53366964,"type":0}},{"prev_out":{"n":1,"value":70000000,"addr":"1HDxhL7H8thYC9RaLwACRoeTP6cjTERzkq","tx_index":53197639,"type":0}},{"prev_out":{"n":0,"value":60000000,"addr":"1Mzt5Y815fnf3rbCigx411bmUGqTiAMMMf","tx_index":53534495,"type":0}},{"prev_out":{"n":0,"value":3000000,"addr":"191cP1rSfJX9kATiujqbavKPHta8ryPbUk","tx_index":53397518,"type":0}},{"prev_out":{"n":0,"value":80000000,"addr":"1E7zhSRBexQYN98PxKZrnocZzb7yuCoobF","tx_index":53616202,"type":0}},{"prev_out":{"n":0,"value":60000000,"addr":"1DNGJSkn2jaBtzHpeu2EV8Za7GzLkYRKrk","tx_index":53211317,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"1FPHkZfftpfBVYg46sBAZmU7k4R6nMWjgm","tx_index":53714935,"type":0}},{"prev_out":{"n":1,"value":80000000,"addr":"1NJmpCAfoeZa8M8RoWCT1PAs85k4URKwuL","tx_index":53437066,"type":0}},{"prev_out":{"n":1,"value":320000000,"addr":"17MCmBPgv2SEKsmGf1o7X6qbK59C1Pnwr3","tx_index":53584050,"type":0}},{"prev_out":{"n":0,"value":100000000,"addr":"1KrtH7ceJthEfBFd8t9G4Vohj2myGB1eDj","tx_index":53212472,"type":0}},{"prev_out":{"n":1,"value":103000000,"addr":"13zZzqKR3XYPUKpLWvGkimSJbDMaJim9Ru","tx_index":53218032,"type":0}},{"prev_out":{"n":1,"value":92500000,"addr":"1G5EdCerj7Yryoc4tpmCrFe7rvkbLcjHtz","tx_index":53633538,"type":0}},{"prev_out":{"n":0,"value":97800000,"addr":"1K59Q1UJSULsHhs4Rv8PiakEhDK689jQSj","tx_index":53232395,"type":0}}],"vout_sz":2,"relayed_by":"184.71.200.221","hash":"62f9419e56ac1b628840aaf52307867f9856d7a52b3c1d945a9938a3021cbf2c","vin_sz":52,"tx_index":53744354,"ver":1,"out":[{"n":0,"value":1000000,"addr":"1cm8zPZqjfWs5MBg8yKxJwWvDAkqF4CVu","tx_index":53744354,"type":0},{"n":1,"value":5000000000,"addr":"1EGP5pSnttKRdAcPxdiTviSrjsyHEAnXhy","tx_index":53744354,"type":0}],"size":9439}
Run Code Online (Sandbox Code Playgroud)

json bitcoin

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

量角器OSX将浏览器窗口置于前面

我正在运行量角器来测试angularjs app.一切正常,但是当生成浏览器窗口时,它在后台,所以我必须使用cmd-tab来查找它,并且错过了开始时发生的事情.

有没有什么办法可以编程方式将浏览器窗口带到前台?

selenium angularjs selenium-webdriver protractor

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

Javascript国际象棋符号转换功能

我正在寻找一个javascript库来转换带有移动符号的PGN文件,包括片段和目的地,如:

... 3. cxd5 Qxd5 ...
Run Code Online (Sandbox Code Playgroud)

仅使用方形坐标编写符号,例如:

... 3. c4-d5 h5-d5 ...
Run Code Online (Sandbox Code Playgroud)

如果没有图书馆,那么使这块岩石坚固起来将是一项相当大的工作,因为它必须逐步完成每一步,并验证合法的移动以确定哪一块可以到达目的地广场.

有什么javascript可以帮助我,或者我可以轻松移植的另一种语言?

javascript chess node.js

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

jQuery对象`toString()`方法

我扩展了jQuery对象以返回它的内部HTML ...

$.fn.toString = function() {
  return this.html();
};

console.log("The inner HTML is: " + $("<div>Here, <i>there</i>, everywhere</div>"));
Run Code Online (Sandbox Code Playgroud)

有什么理由说这不是默认行为吗?这会破坏什么吗?


更新以回复答案/评论

首先,除了依赖于将jQuery对象强制转换为字符串以及匹配该字符串中的文本的类型检查之外,我看不出它会如何破坏.我错了吗?

这将返回outerHTML集合中连接的所有元素.这对任何人都有意义吗?对我而言,它有点意义.

var li, list;

$.fn.toString = function() {
  var out;
  out = [];
  $.each(this, function(k, v) {
    return out.push($(v)[0].outerHTML);
  });
  return out.join("\n");
};

list = $("<ul>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n  <li>some <a href='/'>link</a> items</li>\n</ul>");

li = $("li", list);

console.log("The html of it..: " + li);
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

在翡翠中使用mixin inline

我试图在这样的玉石线中间使用mixin ......

p some paragraph text !{ 'this'+'works' } but !{ +myMixin() } breaks it!
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我无法弄清楚如何在一行玉的中间引用mixin.可能吗?

html pug

9
推荐指数
2
解决办法
1576
查看次数

try catch没有捕获无效日期

我正在尝试验证日期输入,所以如果它是正确的,我处理一种方式,如果无效,我处理另一种...

var date, datestring, e;

datestring = "2012-03-222";

try {
  date = new Date(datestring);
  /* Ends up logging `Invalid Date`
  */

  console.log(date);
} catch (_error) {
  e = _error;
  /* Should come here and log `Error: Invalid Date` or the likes
  */

  console.log("Erorr: " + e);
}
Run Code Online (Sandbox Code Playgroud)

我可以检查返回的字符串,看看它是否Invalid Date存在,但是我很惊讶这try/catch对于这种情况不起作用,并担心可能有其他错误消息我不匹配.

我该如何处理这个问题?

javascript date

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