Javascript 打开聊天窗口的网站中的所有页面链接

Javascript 打开聊天窗口的网站中的所有页面链接,javascript,html,href,Javascript,Html,Href,我有一个客户,希望他的所有网页链接在html主页,即当点击任何菜单,主页,一切,打开聊天支持框。普通的href应该像这个示例那样做,但是主页上有几十个链接,他不想手动删除每个链接,只需要一个代码,这样他就可以随时删除 <a href="javascript:jivo_api.open();">Open the chat</a> 单击聊天室时需要打开的链接示例: <li class="list-link"> <a href="tyres/index.

我有一个客户,希望他的所有网页链接在html主页,即当点击任何菜单,主页,一切,打开聊天支持框。普通的href应该像这个示例那样做,但是主页上有几十个链接,他不想手动删除每个链接,只需要一个代码,这样他就可以随时删除

<a href="javascript:jivo_api.open();">Open the chat</a>

单击聊天室时需要打开的链接示例:

<li class="list-link"> <a href="tyres/index.html"> <i class="tyres ico"></i> anvelope <i class="wlf wlf-arrow-right arrow-link"></i> </a> </li>
  • 普通href应该与此示例类似

    您显示的代码未使用正常的
    href
    s。它使用的技术已经有25年以上的历史了,这是我们在使用API标准或关注可访问性之前处理点击的方式

    首先,不要将超链接仅仅用作JavaScript事件挂钩。网页上的任何可见元素都支持单击事件,但超链接表示导航。那些依赖辅助技术(如屏幕阅读器)的用户在使用超链接时,可能会在浏览网站时遇到问题,但不用于导航。相反,只需使用另一个内联元素(如
    span
    )并指定
    单击事件处理程序即可

    第二,
    javascript:..
    将不需要,因为您将把javascript与HTML分开(也称为“关注点分离”)

    现在,回答你的问题。如果您只需给出当单击公共CSS类时应打开聊天窗口的任何/所有元素,那么您可以创建非常简单的代码,找到所有元素,循环它们,并将它们分配给相同的事件处理程序,从而打开聊天。下面是一个例子:

    //获取具有“chat”类的所有元素并将其放入数组中
    让chatElements=Array.prototype.slice.call(document.queryselectoral(“.chat”);
    //在阵列上循环
    chatElements.forEach(函数(项){
    //分配一个事件处理程序
    item.addEventListener(“单击”,函数(){
    log(“在此处打开聊天窗口”);
    });
    });
    
    .chat{光标:指针;颜色:蓝色;}

    我将打开聊天室

    我不会打开聊天室

    我将打开聊天室 我将打开聊天室
    我不会打开聊天室
    请阅读。另外,这个问题没有用JQuery标记。这个解决方案解决了我的问题!我只是简单地加载了JQuery库,并且工作得非常好!这可能已经“起作用”,但使用这样的链接是完全不合适的。“一个常见的CSS类”-这些是HTML类。CSS有类选择器,而不是类。@Quentin指出了可见元素及其聚焦能力。至于你的第二条评论,如果你看我的代码,你会发现我使用的是CSS,但这真的不是重点。你把HTML类属性和该属性的值混淆了,这是一个CSS类。我不是。HTML类属性的值是HTML类的列表。CSS有类选择器。JavaScript具有
    getElementByClassName
    。它们引用HTML类。@Quentin虽然我同意你的观点,但我只想说调用
    某个CSS类肯定是一个正确的术语-你在这里吹毛求疵。不过,我不是在谈论CSS中的类选择器,所以这与我的观点无关。
    $(function(){
         $('a').click(function(event) {
              event.preventDefault();   
             jivo_api.open();
         });
    });