使用JavaScript向画布添加ID

使用JavaScript向画布添加ID,javascript,canvas,Javascript,Canvas,我试图使用JavaScript向画布添加一个ID,但是我试图修改以下特定代码。请注意,我只是假设这是我设置属性的地方。为任何帮助干杯 THREE.CanvasRenderer = function ( parameters ) { console.log( 'THREE.CanvasRenderer', THREE.REVISION ); parameters = parameters || {}; var _this = this, _renderData, _elements,

我试图使用JavaScript向画布添加一个ID,但是我试图修改以下特定代码。请注意,我只是假设这是我设置属性的地方。为任何帮助干杯

THREE.CanvasRenderer = function ( parameters ) {

console.log( 'THREE.CanvasRenderer', THREE.REVISION );

parameters = parameters || {};

var _this = this,
    _renderData, _elements, _lights,
    _projector = new THREE.Projector(),

    _canvas = parameters.canvas !== undefined
             ? parameters.canvas
             : document.createElement( 'canvas' ),

    _canvasWidth = _canvas.width,
    _canvasHeight = _canvas.height,
    _canvasWidthHalf = Math.floor( _canvasWidth / 2 ),
    _canvasHeightHalf = Math.floor( _canvasHeight / 2 ),

    _viewportX = 0,
    _viewportY = 0,
    _viewportWidth = _canvasWidth,
    _viewportHeight = _canvasHeight,

    _pixelRatio = 1,

    _context = _canvas.getContext( '2d', {
        alpha: parameters.alpha === true
    } ),

您可以直接设置
id
属性:

_canvas.id = 'whatever';
编辑

上面的代码应该可以工作,但需要在您拥有的大变量初始化块之后:

// start var initialization
var _this = this,
    _renderData, _elements, _lights,
    _projector = new THREE.Projector(),

    _canvas = parameters.canvas !== undefined
             ? parameters.canvas
             : document.createElement( 'canvas' ),

    _canvasWidth = _canvas.width,
    _canvasHeight = _canvas.height,
    _canvasWidthHalf = Math.floor( _canvasWidth / 2 ),
    _canvasHeightHalf = Math.floor( _canvasHeight / 2 ),

    _viewportX = 0,
    _viewportY = 0,
    _viewportWidth = _canvasWidth,
    _viewportHeight = _canvasHeight,

    _pixelRatio = 1,

    _context = _canvas.getContext( '2d', {
        alpha: parameters.alpha === true
    } ),

    ... more code,

    theEnd = true;
// end var initialization

_canvas.id = 'whatever';
^这整件事就是一个大的var初始化。在某个时刻,它将结束,可能会有一个分号。您将在此处添加id代码


我认为您遇到了意外的令牌错误,因为您试图在var初始化中的逗号之间添加一些代码。

您可以直接设置
id
属性:

_canvas.id = 'whatever';
编辑

上面的代码应该可以工作,但需要在您拥有的大变量初始化块之后:

// start var initialization
var _this = this,
    _renderData, _elements, _lights,
    _projector = new THREE.Projector(),

    _canvas = parameters.canvas !== undefined
             ? parameters.canvas
             : document.createElement( 'canvas' ),

    _canvasWidth = _canvas.width,
    _canvasHeight = _canvas.height,
    _canvasWidthHalf = Math.floor( _canvasWidth / 2 ),
    _canvasHeightHalf = Math.floor( _canvasHeight / 2 ),

    _viewportX = 0,
    _viewportY = 0,
    _viewportWidth = _canvasWidth,
    _viewportHeight = _canvasHeight,

    _pixelRatio = 1,

    _context = _canvas.getContext( '2d', {
        alpha: parameters.alpha === true
    } ),

    ... more code,

    theEnd = true;
// end var initialization

_canvas.id = 'whatever';
^这整件事就是一个大的var初始化。在某个时刻,它将结束,可能会有一个分号。您将在此处添加id代码


我认为您遇到了意外的令牌错误,因为您试图在var初始化中的逗号之间添加一些代码。

您假设。。。。这是否意味着您并不真正理解所使用的源代码?另外,您在哪里尝试添加
ID
,因为我看不到任何尝试…..只需添加
\u canvas.ID=“所需ID”
\u canvasWidth
行之前是的,那不起作用,不管怎样,谢谢Tudory你认为。。。。这是否意味着您并不真正理解所使用的源代码?另外,您在哪里尝试添加
ID
,因为我看不到任何尝试…..只需添加
\u canvas.ID=“所需ID”
\u canvasWidth
行之前是的,这不起作用,谢谢TudorThanks Austin,我已经尝试过了,但它只是破坏了代码:(只要
\u canvas
是dom节点,这应该起作用,
document.createElement('canvas'))
应该没问题,但可能您传入的不是dom节点,而是参数?出现了什么错误?
\u canvas.width
等是否正常工作?@Mitzi当您说它破坏了代码时,通常会导致一些错误,请检查您的浏览器控制台是否有错误,如果您看到错误,请将其发布到下一页不要评论,因为这可能会有帮助,并可能导致一个可靠的解决方案。谢谢。错误是:Uncaught SyntaxError:Unexpected token。如果我尝试_canvasId='whatever',它不会中断,但是,id不是addedI,你有一个很大的带有逗号的var块,我想这就是问题所在。我会更新上面的答案。谢谢Austin,我已经尝试过了但它只是破坏了代码:(只要
\u canvas
是dom节点,
document.createElement('canvas')就可以工作
应该没问题,但可能您传入的不是dom节点,而是参数?出现了什么错误?
\u canvas.width
等是否正常工作?@Mitzi当您说它破坏了代码时,通常会导致一些错误,请检查您的浏览器控制台是否有错误,如果您看到错误,请将其发布到下一页不要评论,因为这可能会有帮助,并可能导致一个可靠的解决方案。谢谢。错误是:Uncaught SyntaxError:Unexpected token。如果我尝试_canvasId='whatever',它不会中断,但是,id不是addedI,你有一个带有逗号的非常大的var块,我认为这就是问题所在。我将更新上面的答案。