1

これは、私が Web ページに提供するスクリプトです。

var myDiv = document.createElement('div');
var style = myDiv.style;
style.opacity = 0;
style.zIndex = 10000;
style.position = 'absolute';
style.top = '0px';
style.left = '0px';
style.width = '100%';
style.height = '100%';
myDiv.addEventListener("click", function(event) {
    new Image().src="http://myhostna.me/something.png?CLICKED"+Math.random(); 
});
document.body.appendChild(myDiv);

something.png?CLICKEDAndroid の WebView の Web ページでこのスクリプトを提供すると、アクセス ログでGET 要求を確認できるため、クリック イベントが発生したことがわかります。

問題は、スクリプトを iOS の UIWebView の Web ページに提供するときに、これらの要求が表示されないことです。

それがなぜなのか誰か知っていますか?

私がサービスを受けているこれらの Web ビューはサードパーティであり、それらが有効または無効にするオプションの種類については何も知りません。

4

1 に答える 1

1

変更してください

new Image().src="http://myhostna.me/something.png?CLICKED"

new Image().src="http://myhostna.me/something.png?CLICKED"+Math.random();

編集:

これらの行をコードに追加してください: (それは行 style.zIndex = 1000; の後にあることができます)

style.width='500px';
style.height='500px';
style.background='red';
myDiv.innerHTML = 'my div';

変更する

style.opacity = 0;

style.opacity = 1;

(この方法でデバッグする方が簡単です)

また、アラートを保持します('test'); イベントリスナー関数内

すべてが正常に実行されると、警告ボックスが表示されます。


div にサイズがないことが問題のようです (CSS で別の場所に設定しない限り)。


デバッグのための新しいアイデア:

これをスクリプトに追加します

myDiv.id = 'myDiv';

document.body.addEventListener("touchstart", function(event) {
    alert(event.target.id+' '+event.target.tagName);
}, false);

次に、div タグをクリックすると、アラート ボックスに「myDiv DIV」が表示されます。他の id (または空の文字列。一部のページ要素には id 属性がない場合があります) が表示された場合は、期待している div をクリックしていないことを意味します。次に、z-index 関連の問題である可能性があります。

于 2012-08-16T21:38:36.123 に答える