Javascript 与BigCommerce的ESLint无未定义-js问题
我在一个.js文件中得到了这段代码,我正在通过ESLint运行它。但是它抛出了一个关于这行的错误:Javascript 与BigCommerce的ESLint无未定义-js问题,javascript,bigcommerce,eslint,Javascript,Bigcommerce,Eslint,我在一个.js文件中得到了这段代码,我正在通过ESLint运行它。但是它抛出了一个关于这行的错误:iframesize({) 说明:未定义错误“iframesize”无未定义 如果我这样定义它:const iframesize() 我的代码不再工作了,如何让ESLint高兴并保持代码工作 export default class Page extends PageManager { before(next) { next(); } loaded(next) { next();
iframesize({
)
说明:未定义错误“iframesize”无未定义
如果我这样定义它:const iframesize()
我的代码不再工作了,如何让ESLint高兴并保持代码工作
export default class Page extends PageManager {
before(next) {
next();
}
loaded(next) {
next();
}
after(next) {
const url = Url.parse(location.href, true);
const IC_PAGE = '/international-checkout';
const currentPageUrl = url.pathname;
if (currentPageUrl.indexOf(IC_PAGE) !== -1 && $('#icForm').length === 1) {
$(document).ready(() => {
if ($('#icForm').length === 1) {
if ($('.GiftStatus') && $('.GiftStatus').val() === '1') {
alert('Gift Certificate is not available for international orders. Please remove Gift Certificate from shopping cart before proceeding with International Checkout.');
window.parent.location.href = '/cart.php';
return false;
}
$('.icformfields').each((i, e) => {
const currentId = $(e).attr('id');
const res = currentId.split('-');
const finalId = Number(res[1]) + 1;
const finalName = $(e).attr('name') + finalId;
$(e.currentTarget).attr('name', finalName);
});
document.getElementById('icIframe').src = 'https://www.internationalcheckout.com/cart.php';
document.getElementById('icForm').submit();
$('#icIframe').load(() => {
$('#icForm').remove();
$('#loading').css('display', 'none');
$('html, body').animate({
scrollTop: $('#icIframe').offset().top,
}, 1000);
$('#icIframe').fadeIn();
});
}
});
iFrameResize({
checkOrigin: false,
enablePublicMethods: true,
});
}
next();
}
}
我想知道如何在不禁用特定行的错误报告的情况下满足ESLint要求。如果您确定代码正在处理
iframesize()
,可能是因为您使用js文件设置的体系结构,您可能只想忽略该错误。最简单的是
// eslint-disable-line
这将禁用该行的esilnt
由于此函数定义来自可能将其附加到全局作用域(即window
)的库,因此从该作用域调用它就可以了
window.iFrameResizer()
现在eslint知道您正在调用驻留在window对象上的函数,所以如果您确定代码正在
iframesize()
上工作,它不会抱怨,可能是因为您使用js文件设置的架构,您可能只想忽略该错误。最简单的是
// eslint-disable-line
这将禁用该行的esilnt
由于此函数定义来自可能将其附加到全局作用域(即window
)的库,因此从该作用域调用它就可以了
window.iFrameResizer()
现在eslint知道您正在调用驻留在window对象上的函数,所以它不会抱怨值得注意的是,eslint提供了多种方法来解决这个问题。 请看地图 我建议将以下内容添加到文件顶部。使用此方法定义仅在几个位置使用的全局依赖项:
/* global iFrameResize */
您还可以提供一个阵列:
/* global iFrameResize, iFrameManage, etc */
如果你使用IFRAMESESIZE很多,或者如果你依赖于jQuery之类的东西,请考虑在你的<代码>中定义它为全局。
"globals": {
"iFrameManage": true,
}
还值得注意的是,eslint提供了多种解决方法。 请看地图 我建议将以下内容添加到文件顶部。使用此方法定义仅在几个位置使用的全局依赖项:
/* global iFrameResize */
您还可以提供一个阵列:
/* global iFrameResize, iFrameManage, etc */
如果你使用IFRAMESESIZE很多,或者如果你依赖于jQuery之类的东西,请考虑在你的<代码>中定义它为全局。
"globals": {
"iFrameManage": true,
}
@Michael的可能重复我明白你为什么认为它会重复,但我真的想知道如何在不禁用错误报告的情况下让ESLint开心。我现在明白了区别——我错过了你问题的最后一部分,关于“不禁用错误报告”,所以我同意它不是@Michael的复制品。我明白你为什么认为它是复制品,但我真的想知道如何在不禁用错误报告的情况下让ESLint开心。我现在明白了区别——我错过了你问题的最后一部分,关于“不禁用错误报告”,所以我同意它不是重复的。谢谢,这肯定回答了当前的问题。我希望我知道是否有一种方法可以在不禁用错误的情况下满足ESLint的要求……它是一个名为
iframe resizer
的库,它是一个存在于全局范围内的定义。只需执行window.iFrameResizer()太好了!这就是诀窍,现在我更了解了!我感谢你的帮助。谢谢,这肯定回答了眼前的问题。我希望我知道是否有一种方法可以在不禁用错误的情况下满足ESLint…这是一个名为iframe resizer
的库,它是一个存在于全局范围内的定义。只需执行window.iFra即可meResizer()太好了!这就成功了,现在我对事情有了更好的了解!我感谢你的帮助。