2012-08-16 92 views
1

你好,我有一個基於Web的幻燈片,這基本上是使用定時器調用的頁面數量。JavaScript全局鼠標鉤

客戶現在需要幻燈片中的silverlight/flash遊戲,並且只有在觸摸屏幕(觸摸屏)時纔會激活它。這意味着我需要在javascript中捕獲任何鼠標活動,然後讓我的Javascript調用另一個頁面(包含silverlight/flash)。我看到的問題是幻燈片可以是任何東西:圖像,視頻,YouTube,HTML ......你的名字......如果它可以在瀏覽器中運行,我需要攔截任何鼠標輸入/觸摸。

這甚至可能嗎?

我首先想到的是使100%的透明<DIV>標籤,並把它放在高於一切,並有包含onclick事件....

任何幫助表示讚賞

解決方案 經過一番研究,我發現它無法完成。但是 - 有一個解決方法,使用透明圖像作爲背景製作<div>標記 - 使其填充整個屏幕。然後點擊事件附加到一個,很快 - 全部完成:

<style> 
    body, html 
    { 
     margin:0px; 
     height:100%; 
     width:100%; 
    } 

    a 
    { 
     height: 50px; 
     width: 150px; 
     border: 1px solid black; 
     margin: 10px; 
     display: block; 
    } 

    a:hover 
    { 
     height: 50px; 
     width: 150px; 
     border: 1px solid black; 
     margin: 10px; 
     display: block; 
     background-color:red; 
    } 

    #popover 
    { 
     width:100%; 
     height:100%;   
     background-image:url('/gfx/transparent.png'); 
     z-index:999; 
     position:absolute; 
     left:0ox; 
     top:0px; 
    } 

</style> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#popover").click(function() { 
      alert('Clicked the popover screen'); 
     }); 
    }); 
</script> 
<h2> 
    Index</h2> 
    <input type="button" value="Display" id="showbutton" /> 
<div> 
    <table> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
     <tr> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     <td> <a href="#">Test</a></td> 
     </tr> 
    </table> 
</div> 
<div id="popover"> 
</div> 

請注意,鏈接框,當您單擊該按鈕不會突出 - 你得到的單擊事件。希望它有幫助 - 我有一段艱難的時間計算出來。

+0

小心用DIV覆蓋一切趕上這樣的點擊。瀏覽器(或某些安全插件)可能會考慮此[clickjacking](http://en.wikipedia.org/wiki/Clickjacking),即使您不打算成爲惡意網站,您的網站也可能被標記爲惡意。 – RoToRa 2012-08-20 10:31:34

+0

感謝您的單挑RoTaRa。這個程序是爲客戶設計的,現在由他們決定。我不太擔心,但該網站是在登錄屏幕後面,而不是普通大衆。 – 2012-08-20 13:11:34

回答

0
$(document).bind("click", function() { 
    alert("you clicked the page"); 
}); 

但你不能運行在iOS和Adobe Flash/Silverlight的不到風度的Andoid支持了,不知道有關Silverlight

+0

如果我在頁面上點擊一個flash/javascript元素,點擊是否會發生這種情況 - 並且是否可以攔截點擊使其無法觸發flash/silverlight元素? – 2012-08-17 17:32:50