我在.js文件中有这个代码,我正在通过ESLint运行。但它在这一行上引发了一个错误:iFrameResize({
。
说:error 'iFrameResize' is not defined no-undef
。
如果我这样定义:const iFrameResize()
我的代码不再有效,如何让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。
答案 0 :(得分:5)
值得注意的是,eslint提供了多种解决方法。 请参阅eslint docs。
我建议将以下内容添加到文件顶部。使用此方法定义仅在几个地方使用的全局依赖项:
/* global iFrameResize, iFrameManage, etc */
您还可以提供数组:
.eslintrc
如果您经常使用iFrameResize,或者您依赖于jQuery之类的东西,请考虑将其定义为"globals": {
"iFrameManage": true,
}
文件中的全局。
query_ch <- "insert into [blah].[dbo].[blahblah]
(col1, col2, col3, col4, col5)
values (?,?,?,?,?)"
sqlExecute(channel, query_ch, my_data)
答案 1 :(得分:3)
如果您确定代码正在iFrameResize()
上工作,并且可能是因为您使用js文件设置的体系结构,您可能只想忽略该错误。最简单的是
// eslint-disable-line
禁用该行的esilnt。
由于此函数定义来自可能将其附加到window
的全局作用域的库,因此从该作用域调用它可以解决这个问题
window.iFrameResizer()
现在eslint知道你正在调用驻留在window对象的函数,所以它不会抱怨