flashcanvas.js
署名を取得しようとしている IE8 とプラグインと戦っています。
デモはIE8 で正常に動作しますが、requireJS を含む他のプラグインを多数使用しているため、IE8 で何らかの問題が発生しています。
私はそれをこれに釘付けにしました:
function onReadyStateChange() {
if (document.readyState === "complete") {
document.detachEvent(ON_READY_STATE_CHANGE, onReadyStateChange);
var canvases = document.getElementsByTagName(CANVAS);
// => returns 1 in IE8 debugger
console.log( canvases.length )
// => returns objectHTMLCollection
console.log( canvases )
for (var i = 0, n = canvases.length; i < n; ++i) {
console.log(" run "+i)
// => this produces an error...
console.log( canvases[i])
// trigger
FlashCanvas.initElement(canvases[i]);
}
}
}
なぜ機能しないのかわかりませんがcanvases[i]
、エラーがスローされ[object HTMLUnknownElement]
ます。
質問:
何が原因でしょうか? 回避策として、 Javascript を使用して滞在objectHTMLCollection
せずに、どのように私の最初の要素を選択できますか?[]
また、キャンバス要素に追加するか、クラスごとに選択しようとしましたid
(Jqueryを使用)。同じ結果、length=1
、選択 = 忘れます。
手伝ってくれてありがとう!
編集:
メインのアプリコントローラーから次のようなプラグインをリクエストしています:
$(document).on('pagebeforeshow', '#basket', function(e, data){
// signaturePad
var signIt = $('.signatureWrapper');
if ( signIt.length > 0 && signIt.jqmData('bound') != true ) {
signIt.jqmData('bound', true);
require(['services/signature/app'], function (App) {
App.render({target: signIt, drawOnly: true });
});
};
これは、app.js
必要なすべての依存関係を定義するファイルを呼び出し、すべてがロードされたら、プラグインを起動します。
define([ 'services/signature/app'
, 'services/signature/jquery.signaturepad.min'
, 'services/signature/json2.min'
, 'services/signature/flashcanvas'
], function( app, signature, json2, flashcanvas ) {
function render(parameters) {
parameters.target.signaturePad({ drawOnly:parameters.drawOnly });
};
return {
render:render
};
});
flashcanvas.js
そのため、本当に必要のないときにhttp-request を無駄にしています。しかし、すべてのファイルは問題なくロードされていると思います...