我在WebView中做了一些Mac開發。我想擴展由縮短網址縮短的網址,並將展開後的網址顯示給用戶。因此,考慮到其src屬性設置爲http://is.gd/xizMsr的鏈接,當用戶將鼠標懸停我想要的標題工具提示中顯示http://google.comSafari - 通過鼠標懸停上的XMLHTTPRequest更新鏈接標題?
我的鏈接標籤看起來像這樣的鏈接:
<a href="http://is.gd/xizMsr" onMouseOver="myFunction(this);">Here's a shortened link to google</a>
而這裏的相關JavaScript中,將使用XMLHttpRequest來獲取擴展URL,然後更新標題
var myRequest;
var mousedOverElement;
var isLoading = false;
function myFunction(anObject) {
if (isLoading == false) {
isLoading = true;
mousedOverElement = anObject;
var link = anObject.getAttribute('href');
var encodedURL = encodeURI(link);
var url = 'http://is.gd/forward.php?format=simple&shorturl=' + encodedURL;
myRequest = new XMLHttpRequest();
myRequest.open("GET", url);
myRequest.onreadystatechange = onStateChange;
myRequest.send();
}
}
function onStateChange() {
if (myRequest.readyState==4) {
if (myRequest.status==200) {
mousedOverElement.setAttribute('title',myRequest.responseText);
}
isLoading = false;
}
}
的問題是,當我將鼠標懸停在鏈接,然後停止移動光標,標題屬性設置正確,但工具提示未顯示。我必須再次移動鼠標才能顯示工具提示。我不一定要將光標移出鏈接,然後回到它,但只需移動幾個像素,同時保持在鏈接上方就可以實現。
我知道在Safari中使用Web Inspector和Javascript調試器的組合正確地設置了標題。事實上,只要我將鼠標懸停在鏈接上,我就會看到Web Inspector對「元素」選項卡中的DOM視圖使用新標題進行更新。但是,如果我把手從鼠標上移開,工具提示就不會顯示。
這裏我的假設是WebKit只在用戶移動鼠標時顯示工具提示。有沒有辦法對「喚醒」webkit進行排序,即使光標沒有移動?或者我最好用我自己的DHTML-ish魔法來實現這一點,而不是依賴title屬性?
是的,看來我將不得不做那樣的事情來達到預期的效果。我認爲這是Safari中的一個錯誤,所以我將檢查它在WebKit每晚構建中的工作方式,並在需要時提交錯誤。稍後更新。 – bpapa 2011-02-13 03:51:35