gpt4 book ai didi

javascript - 使 Javascript 变量在函数外部可用

转载 作者:行者123 更新时间:2023-11-30 09:33:01 25 4
gpt4 key购买 nike

我正在构建一个用于内部 CMS 的自定义 CKFinder 插件,但在使用“未定义”变量时遇到了一些问题。

我正在做的是从数据库中提取上传图像的版权信息 - 其详细信息是从 JSON 文件中检索的。我已经设法做到了,但我的问题似乎与调用函数内的变量有关。

这是我的代码:

function fileShare( data ) {

var fileName = data.file.getUrl();

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var json = JSON.parse(this.responseText);

var copyright = '';
var watermark = '';

for ( var i = 0; i < json.image.length; i++) {
if(json.image[i].image_path == fileName) {

copyright += json.image[i].copyright;

if(json.image[i].watermark == 1) {
watermark += ' checked';
}
}
}
return false;
}
};

xmlhttp.open("GET", "copyright.json", true);
xmlhttp.send();

// Dialog Box Content
finder.request( 'dialog', {
name: 'CopyrightDialog',
title: 'Copyright Information',
template: '<p>Type the name of the copyright holder:</p>' +
'<input type="text" name="copyright" value="' + copyright + '" placeholder="Image Credit...">' +
'<p>Protect the image with a watermark?</p>' +
'<label><input type="checkbox" name="watermark" value="watermark"' + watermark + '>Enable Watermark?</label>',
buttons: [ 'ok', 'cancel' ]
} ); }

如果您查看代码的最后几行,我正在尝试调用 copyrightwatermark 但显然我遇到了问题,因为它们是在一个函数。

我已经从两者中删除了 var,但没有成功,因此非常感谢任何支持。

最佳答案

对话框不更新的问题是由于CKFinder的模板缓存机制。第一次使用模板会缓存它。

pass data to a dialog's template 的正确方法由 templateModel 属性决定。

function makeDialog( copyright, watermark ) {
finder.request( 'dialog', {
name: 'CopyrightDialog',
title: 'Copyright Information',
template: '<p>Type the name of the copyright holder:</p>' +
'<input type="text" name="copyright" value="{{= it.copyright }}" placeholder="Image Credit...">' +
'<p>Protect the image with a watermark?</p>' +
'<label><input type="checkbox" name="watermark" value="watermark" {{= it.watermark }}>Enable Watermark?</label>',
buttons: [ 'ok', 'cancel' ],
templateModel: new Backbone.Model( {
copyright: copyright,
watermark: watermark
} )
} );
}

在创建copyrightwatermark 之后,您应该在xmlhttp.onreadystatechange 处理程序中调用上述函数。

同时检查 dialog guide in docs .

关于javascript - 使 Javascript 变量在函数外部可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com