2014-02-13 77 views
-1

我需要更改顯示在Chrome狀態欄中的文本。由於無法再使用status.text(出於安全原因),我在<body>上包裝了<a>標籤,因此我的代碼是<a href="text that I manipulate" onclick="return false;"><body>...</body></a>鏈接標記<a>能夠選擇文本

它的工作方式與預期的一樣,每次用戶在頁面內移動鼠標時,狀態欄都會顯示<a>的href屬性。問題:直到現在我還沒有意識到,如果將頁面視爲鏈接,我不能選擇頁面內的任何文本。我正在使用返回false onclick事件,它的工作原理很好,因爲用戶從不重定向,但不能選擇<a>中的文本。

是否有CSS屬性可以讓我改變這種行爲?它只發生在<a>標籤。

+8

...無效HTML – Huangism

+1

這是最大的了''我所見過的,全身.. – dfsq

+0

你可能要檢查出'title'屬性 – Martijn

回答

1

您可以嘗試CSS屬性pointer-events

a{pointer-events:none}將爲該元素禁用鼠標事件

但更好的方法是將數據屬性中的URL添加到點擊事件中,您可以使用location.href導航到這些URL。

<a href="#" data-url="www.x.com"></a> 

請問有幫助嗎?

1

爲了黑客攻擊。這是無效的標記和錯誤的代碼,但作爲概念證明(至少對於Chrome來說)。

可以使用鼠標事件,範圍選擇和可編輯的各種組合。棘手的部分是計算什麼和在哪裏選擇。

示例代碼應該給你選擇段落中的第一個單詞;如:點擊每個段落的起始位置,如「Lorem ipsum」「Duis posuere」選擇一些單詞。這可以結合mousedown,mousemove,mosueup等來選擇正確的文字

Chrome only Fiddle

0

好吧,只是爲了好玩,這是不是真正的黑客,但一些接近:

這樣做:

<body> 
<div class=container>bla bla bla</div> 
<a href="my custom text" id=the_hack></a> 
</body> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
<script> 
$(".container").hover(function(e){ 
$("#the_hack").trigger("focus"); 
}); 
</script> 

當然,它也會有一定的侷限性,當你選擇文本的時候,狀態欄會消失,如果你突出顯示文本,將鼠標移出div之外,選擇將會丟失,但是這是一種黑客攻擊。

請參閱here我的意思是。