※ ChatGPTを利用し、要約された質問です(原文:Ajaxを使いonMouseoverで説明表示をする)
Ajaxを使いonMouseoverで説明表示をする
このQ&Aのポイント
Ajaxを使ってonMouseoverで説明表示をする方法について解説します。
opentextを直接開くと普通に開けるが、getPageで開くとエラーになる状況について説明します。
event.clientXがある場合にエラーが発生するが、エラーなく表示できる方法について考えます。
Ajaxを使いonMouseoverで説明表示をする
以下の場合、opentext を直接開けば普通に開くのですが、
getPage で開くとエラーになってしまいます。
いろいろ試した結果 event.clientX がある場合エラーになるようです。
エラーがなく表示できるようになりませんでしょうか。
(文字数制限のためDIVタグ省略)
function opentext(settxt){
divid="tiptext";
if(document.all){
d_div=document.all(divid);
rx = event.clientX + document.body.scrollLeft +set_x;
//rx = 100;
ry = event.clientY + document.body.scrollTop +set_y;
//ry = 100;
}else{
d_div=document.getElementById(divid);
rx = NNX + set_x;
ry = NNY + set_y;
}
if(settxt){
d_div.style.display="block";
d_div.style.left = rx +"px";
d_div.style.top = ry +"px";
d_div.innerHTML = settxt;
}else{
d_div.style.display="none";
d_div.innerHTML = ""; }
}
function MouseXY(NNevent){
NNX = NNevent.pageX;
NNY = NNevent.pageY;
}
window.onmousemove = MouseXY;/* himajin.moo.jp */
function getPage(pageURL) {
xmlhttp = createXMLHttp();
if (xmlhttp)
{
xmlhttp.onreadystatechange = setPageData;
xmlhttp.open('GET', pageURL);
xmlhttp.send(null);
}else{
alert("XMLHttpRequest失敗");
}
}
function setPageData()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
//alert("XMLHttpRequest成功");
opentext([xmlhttp.responseText]);
}
}
// XMLHttpsオブジェクト作成
function createXMLHttp()
{
try {
return new ActiveXObject ("Microsoft.XMLHTTP");
}catch(e){
try {
return new XMLHttpRequest();
}catch(e) {
return null;
}
}
return null;
}
お礼
回答ありがとうございます。 getPageでevent.clientXを取り、 opentextを呼び出すときに、一緒に値を受け渡すように変更したところ、思い通りの動作ができました。 ありがとうございました。