小编Jon*_*han的帖子

event.clipboardData.getData在Safari中没有text/html

在我们的应用程序中,我们处理粘贴的内容,然后将其插入到可信的div中.在Firefox和Chrome中,粘贴event.clipboardData.getData有两个键text/plain和text/html.在Safari中,它有大约12个键,范围从文本到RTF,但不包括用户粘贴在其中任何一个中的HTML.如何从粘贴事件中访问它?

$( 'div' ).on( 'paste', function( aEvent ) {
    var evt = aEvent.originalEvent;
    var text = evt.clipboardData.getData( 'text/plain' );
    var html = evt.clipboardData.getData( 'text/html' );
    var i, len;

    console.log( 'text=' + text );
    console.log( 'html=' + html );

    console.log( 'data types=' );
    console.log( evt.clipboardData.types );

    for ( i = 0, len = evt.clipboardData.types.length; i < len; i++ ) {
        console.log( evt.clipboardData.types[ i ] + '=' + evt.clipboardData.getData( evt.clipboardData.types[ i ] ) );
    }
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/njLxk9cw/

突出显示两个段落,复制它们,然后粘贴到新行并观察控制台.

[编辑]如果我从复制事件中使用Rangy的range.toHtml,我可以保存所选内容的快照.在粘贴事件中,我首先检查剪贴板,然后检查我保存的片段,然后回退到文本.理想情况下,我希望尽可能让剪贴板API工作.

javascript safari

6
推荐指数
0
解决办法
2181
查看次数

如何在ExpressJS中创建可扩展控制器

我是Node的新手,我正在尝试用ExpressJS(http://expressjs.com/)创建一个MVC应用程序.我在GitHub上使用与MVC示例(https://github.com/visionmedia/express/tree/master/examples/mvc)相同的文件夹结构.

在我的控制器文件夹中,我有2个文件夹:main和system.我想要的是在/controllers/system/index.js中定义一个基本控制器,并让/controllers/main/index.js继承系统控制器.每个其他模块都将扩展系统并覆盖一些函数来生成页面.

在另一个教程中,我发现了以下代码.

Base.js

var _ = require("underscore");
module.exports = {
    name: "base",
    extend: function(child) {
        return _.extend({}, this, child);
    },
    run: function(req, res, next) {

    }
};
Run Code Online (Sandbox Code Playgroud)

Home.js

var BaseController = require("./Base"),
    View = require("../views/Base"),
    model = new (require("../models/ContentModel"));

module.exports = BaseController.extend({ 
    name: "Home",
    content: null,
    run: function(req, res, next) {
        model.setDB(req.db);
        var self = this;
        this.getContent(function() {
            var v = new View(res, 'home');
            v.render(self.content);
        })
    },
    getContent: function(callback) {
        var self = this;
        this.content …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express dot.js

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

使用node.js utils.inherits进行多重继承?

嗨,我是节点的新手,我正在尝试构建一个MVC应用程序.对于控制器和模型,我能够使用utils.inherits来创建基类和子类.对于视图,我想创建3个级别:base,html/json,module.在每个级别都有一个名为construct的函数,需要在创建实例时调用,在顶部调用它应该链接回每个级别.

基本视图:

function Base_view( ) {
    this._response = null;
};

Base_view.prototype.construct = function( res ) {
    this._response = res;
};
Run Code Online (Sandbox Code Playgroud)

Html视图:

var util = require( 'util' ),
    Base_view = require( './view' );

function Html_view( ) {
    Base_view.apply( this, arguments );
}

util.inherits( Html_view, Base_view );

Html_view.prototype.construct = function( res, name ) {
    this.constructor.super_.prototype.construct.apply( this, arguments );
};
Run Code Online (Sandbox Code Playgroud)

模块视图:

var util = require( 'util' ),
    Html_view = require( './../base/html' );

function Main_view( ) {
    Html_view.apply( this, arguments );
}

util.inherits( Main_view, …
Run Code Online (Sandbox Code Playgroud)

inheritance prototype node.js

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

标签 统计

javascript ×2

node.js ×2

dot.js ×1

express ×1

inheritance ×1

prototype ×1

safari ×1