Javascript 在鼠标光标上添加字母';我不适合Firefox
我想创建一个小javascript片段,它: 1) 让我们通过单击字母或按键盘上的键来选择字母 2) 在指定区域中单击鼠标左键,将字母添加到鼠标光标,如果按ALT键,则删除该字母 3) 高亮显示所选内容/单击或按下时清除所选内容 到目前为止,该代码在大部分情况下运行良好,但仅在Chrome中运行。Firefox在点击时突出显示,但拒绝参与Javascript 在鼠标光标上添加字母';我不适合Firefox,javascript,html,firefox,cross-browser,Javascript,Html,Firefox,Cross Browser,我想创建一个小javascript片段,它: 1) 让我们通过单击字母或按键盘上的键来选择字母 2) 在指定区域中单击鼠标左键,将字母添加到鼠标光标,如果按ALT键,则删除该字母 3) 高亮显示所选内容/单击或按下时清除所选内容 到目前为止,该代码在大部分情况下运行良好,但仅在Chrome中运行。Firefox在点击时突出显示,但拒绝参与 var letter = ""; var index = 1; var buchstaben = document.getElementsByClassNam
var letter = "";
var index = 1;
var buchstaben = document.getElementsByClassName("buchstabe");
function blackmailer(){
// get mouse coordinates
var clientx = event.layerX;
var clienty = event.layerY;
//create a div, give it an id that is stored in index
var tag = document.createElement("div");
tag.setAttribute("id", index);
tag.setAttribute("class", "bStabe");
// Listener to remove div, if clicked while holding ALT
tag.addEventListener("mousedown", function(){
if(event.altKey){
var parent = document.getElementById("check");
parent.removeChild(this);
}
});
// set position absolute and give it mouse coordinates (puts it on mouse position)
tag.style.position="absolute";
tag.style.left= (clientx-5) + "px";
tag.style.top = (clienty-15) + "px";
// add text to div element
var text = document.createTextNode(letter);
tag.appendChild(text);
var element = document.getElementById("check");
element.appendChild(tag);
index +=1;
};
function clearSelections(){
for(var i = 0; i<buchstaben.length;i++){
buchstaben[i].style.background = "white";
changeLetter("");
}
};
function keyboardTaste(){
/*
* Create letter of keypress and store it in aLetter
*/
var x = event.which;
x = event.keyCode;
var aLetter = String.fromCharCode(x);
/*
* get div with the ID of aLetter
*/
var letterDiv =document.getElementById(aLetter);
// Clear all previous Selections
clearSelections();
/*
* Loop through all elements of the array, get the id of the
* array at position 'i'.
*/
for(var i = 0; i<buchstaben.length; i++){
var idtag = buchstaben[i].id;
/*
* if the id is the same as the pressed letter AND the pressed key
* is different from the stored variable "letter", change the background
* color (mark active) of the div element and change the stored letter
* to the pressed letter
*/
if(idtag === aLetter && letter != aLetter){
letterDiv.style.background = "red";
changeLetter(aLetter);
break;}
/*
* if the stored letter is the same as the letter pressed, 'deselect' the
* letter
*/
else if(aLetter === letter){
clearSelection();
changeLetter("");
break;}
}
};
function mausSelektion(banana){
if(banana != letter){
clearSelections();
document.getElementById(banana).style.background="red";
changeLetter(banana);
}
else
if(banana === letter){
clearSelections();
changeLetter("");
}};
function changeLetter(banana){
letter = banana;
};
function changeLetter(banana){
letter = banana;
};
var-letter=”“;
var指数=1;
var buchstaben=document.getElementsByClassName(“buchstabe”);
函数勒索器(){
//获取鼠标坐标
var clientx=event.layerX;
var clienty=event.layerY;
//创建一个div,给它一个存储在索引中的id
var tag=document.createElement(“div”);
setAttribute(“id”,索引);
setAttribute(“class”、“bStabe”);
//如果在按住ALT键的同时单击,则侦听器将删除div
addEventListener(“mousedown”,function()){
if(event.altKey){
var parent=document.getElementById(“检查”);
parent.removeChild(本);
}
});
//设置绝对位置并为其指定鼠标坐标(将其置于鼠标位置)
tag.style.position=“绝对”;
tag.style.left=(clientx-5)+“px”;
tag.style.top=(clienty-15)+“px”;
//向div元素添加文本
var text=document.createTextNode(字母);
tag.appendChild(文本);
var元素=document.getElementById(“检查”);
元素。追加子元素(标记);
指数+=1;
};
函数()的作用{
对于(var i=0;i在咨询firefox web控制台后,此代码将创建大量“引用错误-未定义”
要解决所有浏览器的问题,必须为函数创建(事件)参数
像这样:
function blackmailer(event){ }
以及相应的HTML:
<div id="check" onclick="blackmailer(event)">
为了让“事件”起作用,我们实际上必须给函数一个参数,这个参数就是事件。这就解决了我的问题
<div id="check" onclick="blackmailer(event)">
event.screen