小编phi*_*dah的帖子

执行用.innerHTML插入的<script>元素

我有一个脚本,使用一些内容将一些内容插入元素innerHTML.

例如,内容可以是:

<script type="text/javascript">alert('test');</script>
<strong>test</strong>
Run Code Online (Sandbox Code Playgroud)

问题是<script>标签内的代码没有被执行.我用Google搜索了一下,但没有明显的解决方案.如果我使用jQuery插入内容$(element).append(content);,脚本部分eval会在注入DOM之前得到.

有没有人有一段执行所有<script>元素的代码?jQuery代码有点复杂,所以我无法弄清楚它是如何完成的.

编辑:

通过窥视jQuery代码,我已经设法弄清楚jQuery是如何做到的,这导致了以下代码:

Demo:
<div id="element"></div>

<script type="text/javascript">
  function insertAndExecute(id, text)
  {
    domelement = document.getElementById(id);
    domelement.innerHTML = text;
    var scripts = [];

    ret = domelement.childNodes;
    for ( var i = 0; ret[i]; i++ ) {
      if ( scripts && nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
            scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
        }
    }

    for(script …
Run Code Online (Sandbox Code Playgroud)

javascript dom eval innerhtml

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

如何重复计费?

这可能是一个主观问题,但我会试一试.

关于订阅计费管理的问题已经有很多问题.我目前正在开发一种需要全自动计费系统的SaaS解决方案.

在提出这个问题时我不想要的是关于实施特定支付网关或类似内容的建议.相反,我想知道采取何种方法.

我需要的功能是一个可以处理升级,降级,定期计费,取消等的系统.最初仅针对一种产品,但随着时间的推移可能需要系统可以处理多种产品(我认为产品根本意味着不同产品,不是同一产品的不同变体).

正如我所看到的,当您需要这样的解决方案时,有许多可能的方法:

  1. 自行编码一个支持此功能的计费服务器,并与每个产品分离,以便它可以处理多个独立的产品.
  2. 使用Recurly,Chargify,SpreedlyCheddarGetter托管解决方案.

使用托管解决方案的优势显然是您不需要PCI认证,关注是外包的,并且启动和运行起来要快得多.然而,这些优势需要付出代价:对您的产品最重要的支持功能 - 即计费不在您的控制范围内.此外,您的控制力和灵活性较低.

你会怎么做?如果我们超越PCI要求,我肯定更愿意在内部编写一个可以完成这种工作的系统.另一方面,我从众多消息来源获悉,对这样的系统进行编码是一种痛苦.

任何建议都非常感谢.此外,如果您建议自己编写代码,那么任何有关如何进行编码的经验,或者是否有任何开源项目(无论语言,我所追求的不是代码而是结构)我都能从中受益意思是很多.

payment saas subscription recurring-billing

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

电子邮件确认码的最佳做法

我正在创建一个涉及用户注册的PHP网站,我想知道"电子邮件确认"代码的最佳实践.

新用户必须确认他们的电子邮件地址 - 我这样做是通过生成代码并通过电子邮件将其发送给用户,然后他可以使用该电子邮件激活他的帐户.我没有将这个密钥存储在数据库中,而是使用了一个方便的小解决方法:代码是以下结果:

md5("xxxxxxxxx".$username."xxxxxxxxxxx".$timestamp."xxxxxxxxx");
Run Code Online (Sandbox Code Playgroud)

其中$ timestamp是指用户创建时间.总的来说,我对此非常满意,但后来我开始思考,这是否足够安全?碰撞的可能性怎么样?我还需要生成密码重置等代码.如果我使用类似的方法,碰撞可能导致一个用户无意中重置另一个用户的密码.这不好.

那你怎么做这些事呢?我的想法是以下格式的表格:

codePK (int, a-I), userID (int), type (int), code (varchar 32), date (timestamp)
Run Code Online (Sandbox Code Playgroud)

其中'type'为1,2或3表示"激活","电子邮件更改"或"密码重置".这是一个很好的方式吗?你有更好的方法吗?

使用类似上面的方法,我可以在不使用cron-jobs的情况下自动删除两天以上的任何内容吗?我的主人(almostfreespeech.net)不支持他们.如果可能的话,我想避免在外部主机上有一个cron-job,这是一个删除东西的脚本,因为那只是凌乱= P.

谢谢!
马拉

更新:
澄清:我已经意识到安全和安全地执行此任务的唯一方法是使用数据库,这是原始功能试图避免的.我的问题是如何构建表(或表?).有人建议我不要使用codePK,只需将代码设为PK即可.简而言之,我的问题是:这是你做的吗?

php activation email-confirmation

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

防止闭包编译器重命名某些变量

我有一个带有全局对象的javascript文件,不能重命名(_gat来自Google Analytics异步跟踪器).

Google Closure编译器不得重命名此对象,因为Google Analytics会查找具有此特定名称的变量.

我查看了提到的Javascript文档符号:http://code.google.com/closure/compiler/docs/js-for-compiler.html - 但是,我找不到有关"保护"的任何内容变量.

无论我使用简单编码还是高级编译,问题都存在.

如何确保_gat不重命名变量?

javascript compression google-closure google-closure-compiler

15
推荐指数
2
解决办法
9660
查看次数

wkhtmltopdf命令失败

我正在尝试使用HTML将HTML文件转换为PDF wkhtmltopdf.

为此,我在Debian盒子上安装了wkhtmltopdf并尝试运行此命令:

/usr/bin/xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf /path/convert.1303714349.4961.html.tmp /path/convert.1303714349.4961.pdf.tmp
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Loading page (1/2)
Error: Failed loading page file:///path/convert.1303714349.4961.html.tmp (sometimes it will work just to ignore this error with --ignore-load-errors)
Run Code Online (Sandbox Code Playgroud)

该文件确实存在/path/convert.1303714349.4961.html.tmp,并且权限设置正确.它可以与前面的路径有关file://吗?

pdf-generation wkhtmltopdf xvfb

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

Flask - 自定义装饰器打破了路由

我有以下Flask路线和自定义助手:

from spots import app, db
from flask import Response
import simplejson as json


def json_response(action_func):
    def create_json_response(*args, **kwargs):
        ret = action_func(*args, **kwargs)
        code = 200
        if len(ret) == 2:
            code = ret[0]
            resp = ret[1]
        else:
            resp = ret[0]
        return Response(
            response=json.dumps(resp, indent=4),
            status=code,
            content_type='application/json'
        )

    return create_json_response


@app.route('/test')
@json_response
def test():
    return 400, dict(result="Test success")


@app.route('/')
@json_response
def home():
    return 200, dict(result="Home success")
Run Code Online (Sandbox Code Playgroud)

我希望GET请求/ test返回类似{"result":"Test success"}但不是这样的情况.相反,任何请求似乎都匹配最后一条路线,即home.为什么?

我想知道这是不是因为不同的电话之间缺少绝缘json_response

提前致谢.

python json decorator flask

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

安装PEAR后,PHPUnit CLI不可用

我使用以下命令在我的OS X Snow Leopard盒子上安装了PHPUnit:

sudo pear channel-discover pear.phpunit.de
sudo pear install phpunit/PHPUnit
Run Code Online (Sandbox Code Playgroud)

我希望在此之后phpunitCLI命令可用,但事实并非如此.我已经查看了/usr/local/bin,/usr/lib/php/PHPUnit但找不到任何看起来像CLI的东西.

任何人都可以告诉我如何启动和运行CLI?

php macos pear phpunit

7
推荐指数
2
解决办法
1603
查看次数

angular.js app中的多个视图

问题

我正在尝试使用(最初)以下功能构建产品列表:

  • Serverside分页
  • Serverside过滤

我目前的问题有很多问题,但主要的是我似乎无法以最佳方式分离观点.在页面更改时,更新类别列表(如果选中任何项目,则取消选中它们).

如何仅在加载页面时加载类别列表?

谢谢

index.html的:

<div ng-app="relv">
    <div ng-view></div>
</div>

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script src="//cdn.jsdelivr.net/angularjs/1.0.2/angular-resource.min.js"></script>
<script src="/angular/app.js"></script>
<script src="/angular/services.js"></script>
<script src="/angular/controllers.js"></script>
<script src="/angular/filters.js"></script>
<script src="/angular/directives.js"></script>
Run Code Online (Sandbox Code Playgroud)

app.js:

'use strict';
angular.module('relv', ['relv.filters', 'relv.services', 'relv.directives']).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/products', {templateUrl: '/angular/partials/product_list.html', controller: ProductListCtrl});
    $routeProvider.when('/products/:page', {templateUrl: '/angular/partials/product_list.html', controller: ProductListCtrl});
    $routeProvider.otherwise({redirectTo: '/products'});
  }]);
Run Code Online (Sandbox Code Playgroud)

product_list.html:

<div id="category_list">
    <label ng-repeat="category in categories">
        <input type="checkbox" name="category" ng-model="filterCategories[category.id]"> {{ category.name }}
    </label>
</div>
{{ filterCategories }}

Product list, page {{ page }}.
<br><br>
<ul>
    <li ng-repeat="product …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

Django在S3中存储上传的文件

我有这个类使用Django REST框架将POST端点暴露给API使用者.

该代码应该接收文件上传,然后将其上传到S3.文件正确上传到Django应用程序(file_obj.length返回实际文件大小),并在S3中创建对象.但是,S3中的文件大小为零.如果我记录返回file_obj.read()它也是空的.

怎么了?

from django.conf import settings

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.parsers import FileUploadParser
from boto.s3.connection import S3Connection
from boto.s3.key import Key

from .models import Upload
from .serializers import UploadSerializer


class UploadList(APIView):
    parser_classes = (FileUploadParser,)

    def post(self, request, format=None):
        file_obj = request.FILES['file']

        upload = Upload(user=request.user, file=file_obj)
        upload.save()

        conn = S3Connection(settings.AWS_ACCESS_KEY, settings.AWS_SECRET_KEY)
        k = Key(conn.get_bucket(settings.AWS_S3_BUCKET))
        k.key = 'upls/%s/%s.png' % (request.user.id, upload.key)
        k.set_contents_from_string(file_obj.read())

        serializer = UploadSerializer(upload)

        return Response(serializer.data, status=201)
Run Code Online (Sandbox Code Playgroud)

python django amazon-s3 boto

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

我的应用程序的多个安装 - 我该如何处理它

我有一个用PHP,MySQL等编写的应用程序.该应用程序有一些依赖项,如beanstalkd,Solr和一些PHP扩展.

对于每个客户,我们都可以在与其他客户共享的服务器上或仅与该客户共享的服务器上单独安装该应用程序.

现在我们正在使用Puppet脚本来引导新客户,然后我们手动去每个客户进行git pull,更新数据库等等,只要有变化.

我们正在寻找的是一个具有尽可能多的以下功能的工具:

  1. Web界面,允许我们查看所有客户及其当前版本
  2. 能够引导新安装
  3. 能够将现有安装更新为特定版本或分支

我们不是在寻找引导新服务器的工具 - 我们仍然手动执行此操作.相反,我们正在寻找一种在现有服务器上自动设置客户端的方法.

Chef或Puppet是否足以满足这一需求,是否有更合适的工具,或者您是否建议自己滚动?

deployment automation puppet chef-infra

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