我收到标题中所述的错误。
这是html代码
<!DOCTYPE HTML>
<html>
<head>
<title> PhoneGap </title>
<script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
<script type="text/javascript" charset="utf-8" src="fileopener.js"></script>
</head>
<body>
<h1>PDF Open Tester</h1>
<a href="#" onclick="window.plugins.fileOpener.open("/sdcard/Course Content Files/1.pdf");">open</a>
</body>
</html>
这是fileopener.js
function FileOpener() {
};
FileOpener.prototype.open = function(url) {
cordova.exec(null, null, "FileOpener", "openFile", [url]);
};
if(!window.plugins) {
window.plugins = {};
}
if (!window.plugins.fileOpener) {
window.plugins.fileOpener = new FileOpener();
}
错误是什么?我的假设是错误不在cordova javascript文件中。
修改来自评论:
我还得到了进一步的错误
Uncaught TypeError: Cannot read property 'fileOpener' of undefined.
答案 0 :(得分:4)
HTML标记中的引用有误。 onclick
属性的外引号为double,但双引号也用于.open()
方法调用内的字符串。将一个或另一个更改为单引号。由于您已经在HTML属性中使用双引号,因此最好在方法调用字符串中使用单引号。
<a href="#" onclick="window.plugins.fileOpener.open('/sdcard/Course Content Files/1.pdf');">open</a>
最好的策略是避免将onclick
完全置于标记内,而是使用适合PhoneGap应用程序的任何方法将事件绑定到代码中。