1

タイトルに記載されているエラーが発生します。

これが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();
}

エラーは何ですか?私の仮定は、エラーがcordovajavascriptファイルにないことです。

コメントから編集:

さらにエラーが発生します

Uncaught TypeError: Cannot read property 'fileOpener' of undefined.
4

1 に答える 1

4

OPの要求に応じてコメントを移植する:

HTMLマークアップの引用に誤りがあります。属性の外側の引用符は二重引用符ですが、メソッド呼び出しonclick内の文字列にも二重引用符が使用されています。.open()どちらか一方を一重引用符に変更します。HTML属性にはすでに二重引用符を使用しているため、メソッド呼び出し文字列内で単一引用符を使用するのがおそらく最善です。

<a href="#" onclick="window.plugins.fileOpener.open('/sdcard/Course Content Files/1.pdf');">open</a>

最善の戦略はonclick、マークアップの内部を完全に配置することを避け、代わりにPhoneGapアプリケーションに適した方法を使用してイベントをコードにバインドすることです。

于 2013-03-04T16:21:43.987 に答える