IFRAME内にIFRAMEがあり、getMousePositionメソッドがiframe内の現在のマウス位置を取得できません。最初のIframeで動作しますが、親ドキュメントの関数からgetMousePositionを呼び出すと、フォールバック値600 & 350が返されます。FYI:IFrameのコンテンツを生成する際には制御できませんが、そうではありませんクロスドメインアクセス。 IFRAMESと親文書は同じサーバー上でホストされます。私はInternet Explorer 8のみをプログラミングしているので、ブラウザの互換性は問題ではありません。IFRAMEの現在のマウス位置を特定しますか?
function getMousePosition(){
if(!inframe)
$(document).mousemove(function(e){
mouseX = e.pageX
mouseY = e.pageY
});
else
{
mouseX = 600;
mouseY = 350;
}
//This is where I get the Iframe Document (I then parse through the document, picking up the specific links and storing them in the array verifiedlinks)
var src = window.frames[iframeindex].document.getElementsByTagName("a");
// This is where I call my function which uses the values returned by getMousePosition (verifiedlinks is an array of links inside the iframe):
verifiedlinks[i].onmouseover = function()
{
showPeopleDetails(this.getAttribute('username'));
}
// This should display User Details at the current Mousecoordinates
function showPeopleDetails(UserId){
var vpd = document.getElementById("PeopleDetails");
if (vpd != null) {
getMousePosition();
vpd.style.left=mouseX+10; //mouseX and mouseY are defined globally
vpd.style.top=mouseY+10;
vpd.style.display="block";
}
}
私はこの質問を読んでいます:SOLVED QUESTIONしかし、答えは私の問題を解決しませんでした。 私はこれを見つけましたquestion答えのどれも私のために働いているようです。 私の新しい編集したコード:あなたが親ウィンドウからgetMousePositionを呼び出す場合
function showPeopleDetails(UserId, x, y){
var vpd = document.getElementById("PeopleDetails");
try
{
if (vpd != null) {
//getMousePosition();
//alert("MouseX: " +mouseX+" MouseY: "+mouseY);
//vpd.style.left=mouseX+10;
//vpd.style.top=mouseY+10;
vpd.style.left = x +10 - window.frames[2].document.body.scrollLeft;
vpd.style.top = y +10 - window.frames[2].document.body.scrollTop;
}
}
はいiframeを解析するたびに、INFRAMEをtrueに更新します。ユーザーが特定のリンク上を移動するときにballoontooltipをポップアップしたい – Abhischek
親ウィンドウではなく、iframe内でリンクするためにマウスオーバーイベントを直接添付する必要があります。あなたがしようとしている方法はうまくいきません。 – ShankarSangoli
申し訳ありませんが、IFrame内のリンクを変更していて、リンクが正しく動作していますが、balloontooltipが間違った座標に表示されます。iframe内のリンクにカーソルを合わせると、バルーンは常に600px、350pxで表示されます。そこで私は、私のgetMousePositionがIFRAME内の値を更新していないと仮定しました。 – Abhischek