这些行位于Mozilla pdf js查看器中。他们应该是正确的。但对我来说,他们看起来像:
a = b;
if (b !== a) {
// do something
}
以下是行:
function webViewerPageNumberChanged(evt) {
var pdfViewer = PDFViewerApplication.pdfViewer;
pdfViewer.currentPageLabel = evt.value;
if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) {
PDFViewerApplication.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
}
}
有人可以解释一下吗?
以上代码行位于viewer.js
- pdfjs.1.9.426_dist
中的line 2194
。
根据以下line 8842
Ivan的答案得到以下吸气人/安装者的回答似乎是正确的:
}, {
key: 'currentPageNumber',
get: function get() {
return this._currentPageNumber;
},
set: function set(val) {
if ((val | 0) !== val) {
throw new Error('Invalid page number.');
}
if (!this.pdfDocument) {
return;
}
this._setCurrentPageNumber(val, true);
}
}, {
key: 'currentPageLabel',
get: function get() {
return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];
},
set: function set(val) {
var pageNumber = val | 0;
if (this._pageLabels) {
var i = this._pageLabels.indexOf(val);
if (i >= 0) {
pageNumber = i + 1;
}
}
this.currentPageNumber = pageNumber;
}
}, {
答案 0 :(得分:1)
在line 1991 of pdf.js/app.js [1] "variable x" "variable y" "variable z"
语句前面的Jonas W.注释:
确保页码输入显示正确的值,即使是 用户输入的值无效(例如浮点数)。
因此,if
可能是NaN
的潜在价值。在这种情况下,making a pull requestion to change line 1998
表示evt.value
会返回evt.value !== pdfViewer.currentPageLabel
。
false
我希望这会有所帮助。
编辑:确实是用户1919163,你是对的。
我在{{3}}之后得到了这个回复:
我不认为这个修复是正确的。虽然看起来我们正在将变量与自身进行比较,但 currentPageNumber实际上是一个非常复杂的setter ;见
function webViewerPageNumberChanged(evt) {
let pdfViewer = PDFViewerApplication.pdfViewer;
pdfViewer.currentPageLabel = evt.value;
// Ensure that the page number input displays the correct value, even if the
// value entered by the user was invalid (e.g. a floating point number).
if (evt.value !== pdfViewer.currentPageNumber.toString() &&
evt.value !== pdfViewer.currentPageLabel) {
PDFViewerApplication.toolbar.setPageNumber(
pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
}
}
因此,它不仅仅是一项任务。逻辑完成后,我们想检查条件是否成立。
除非有明显的错误(如果是,请为它打开一个问题),我认为这很好。
答案 1 :(得分:0)
此功能可能绑定到滚动事件。执行时检查当前页面是否与显示的页面匹配。如果没有,它会更新显示的页面。
我认为evt.value
包含当前页码。
if(currentPageNumber != displayedPageNumber){
/* update page number*/
}