Javascript 在鼠标光标上添加字母';我不适合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

我想创建一个小javascript片段,它:

1) 让我们通过单击字母或按键盘上的键来选择字母

2) 在指定区域中单击鼠标左键,将字母添加到鼠标光标,如果按ALT键,则删除该字母

3) 高亮显示所选内容/单击或按下时清除所选内容

到目前为止,该代码在大部分情况下运行良好,但仅在Chrome中运行。Firefox在点击时突出显示,但拒绝参与

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