PDF.js -输入错误密码时的回呼问题
PDF.js - Password Callback Issue When Wrong Password is Entered
我正在为我的项目使用pdf.js,我正面临加密pdf的问题。我使用PDF.js passwordCallback函数来提供密码。
PDFJS.getDocument(file, null, passwordCB, null).then(function (res) {
console.log("Document Decrypted);
});
下面是passwordCallback函数
var passwordCB = function (passwordFunc, reason) {
if (reason === 1) {
passwordFunc(pdfpassword);
} else {
console.log("Wrong Password");
}
};
当提供错误的密码时,控件不退出passwordCB函数。它会卡住,直到提供有效的密码。
所以当用户输入错误的密码时,我必须告诉他们密码是错误的,需要获得一个新密码。我没有使用默认的javascript提示符。
是否有办法打破passwordCallback函数并返回到getDocument()承诺?
此外,从源代码中提到passwordCallback已被弃用。
* @param {function} passwordCallback (deprecated) It is used to request a
* password if wrong or no password was provided. The callback receives two
* parameters: function that needs to be called with new password and reason
* (see {PasswordResponses}).
是否有其他方式为文档提供密码?有关于这个场景的文章或例子吗?
下面是一个例子:
function loadDocumentUsingPassword(){
PDFJS.getDocument(file, null, passwordCB, null).then(function (res) {
console.log("Document Decrypted");
});
function passwordCB (passwordFunc, reason) {
if (reason === 1) { // need a password
var new_password= confirm('Please enter a password:')
} else { // Invalid password
var new_password= confirm('Invalid! Please enter a password:')
}
passwordFunc(new_password);
};
要求用户输入密码。直到他输入
参见https://github.com/mozilla/pdf.js/blob/7f6a607ea537a6237802fe11e211afb2b19af9cf/web/app.js#L649:
var loadingTask = pdfjsLib.getDocument(parameters);
loadingTask.onPassword = function passwordNeeded(updateCallback, reason) {
savedUpdateCallback = updateCallback;
// show reason to user
};
和https://github.com/mozilla/pdf.js/blob/7f6a607ea537a6237802fe11e211afb2b19af9cf/web/password_prompt.js L106:
// collect newPassword
savedUpdateCallback(newPassword);
不需要取消loadingTask——它将等待,直到保存的updateCallback
被调用。
请参考下面的url,该url将提示输入密码,直到给出正确的密码。pdf文件的密码是"test"
http://learnnewhere.unaux.com/pdfViewer/passwordviewer.html 下面是提示密码 的示例代码 pdfJs.onPassword = function (updatePassword, reason) {
if (reason === 1) { // need a password
var new_password= prompt('Please enter a password:');
updatePassword(new_password);
} else { // Invalid password
var new_password= prompt('Invalid! Please enter a password:');
updatePassword(new_password);
}
};
您可以从这里获得完整的代码https://github.com/learnnewhere/simpleChatApp/tree/master/pdfViewer
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- angular js密码强度显示问题
- 密码字段的问题
- 凯撒密码字符串长度问题
- 为密码验证实现正则表达式时出现问题
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- Java脚本密码匹配和复杂性问题
- 节点邮件程序和节点中的密码问题
- 当我尝试计算密码字段时,下面的代码有什么问题
- 检查密码匹配问题(JavaScript)
- 密码的javascript验证问题
- Onkeyup或onkeypress javascript事件问题-密码状态更新
- PDF.js -输入错误密码时的回呼问题
- Javascript Regex 密码验证问题
- 我的jquery验证添加方法密码规则的问题
- 密码强度计问题
- MVC剃刀密码必填字段在新建或编辑场景中出现问题
- 密码正则表达式问题