【问题标题】:Transfer inline javascript to external file将内联 javascript 传输到外部文件
【发布时间】:2016-10-23 16:37:02
【问题描述】:

我有一个带有用于菜单链接的内联 javascript 的 html 页面。由于它是 chrome 扩展,我发现内联 javascript 是被禁止的。有人可以帮我修改脚本以使其正常工作吗? 我在一个标签论坛中找到了这段代码,但我现在想将它用于我的 chrome 扩展。所以基本上我想从<a>标签中删除onclick javascript并转移到javascript外部文件

谢谢

HTML

    <div>
        <ul class="tab" align="center">

          <li>
            <a href="javascript:void(0)" class="tablinks" onclick="openTab(event, 'Menu1')">


              <img class="icon icons8-Marker-Pen" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADRUlEQVRoQ+2Y30sUURTHz5mRyKIUCwIhf8BI9ItWd92mH9BKtfnSuvUPuPbUo0/1qBRBb5VPPeWu0HMbPRqopLii4vpU4Ib5HmVkKEvriVFG1mlm7p27dxyFnee5Z76f8z333LkH4YA/eMD1QxUgaAerDsh0YGG5M7RZUt8RwDdV3bjX3ppfZcXfNw5si68ZA4B6QzQR5NWa9S4WxL4AmCtcSSLAsCnezDoPROAA8wU9BYCGeNuHBREoAEs8jxOBAcwV9DQC9rI2KQsiEACv4ncggMYjWq6rHHpPARaWQ/WbpcMvADDFm3nLeythbbolEABDfOlv7RgihETEE9AvVS3F2ltn83sOUKl4Q7BC1NXelhu3wvteQubpCoC7rPfmAvWFtVzabo2vANbT1ZvonbdfhbXpfqe1vgHIEE9AmYiWc93wvgDwHlCujhAthttyzA0vHUCWeKVmI8b6kTMSIBVgfkkfBMQBwVrfWubULn3fA6Kna7kwr+KlOfAsG33efUF9XEnmt9c6t0vfHHj4Rk8DQu+JozR5v0O5Lg7hXXzFDpjiTdGiEDztUroDVvGiEATwPqJNJ0WdE+pCke5krPHc76eNF//YlkzrSZi4dRZvMEURLfK2S6kOXL6TyAJgz6nza5NOEOFmmupoUq65QKwo6nqIp9e7JcKzA3p3soWIls2gzVd/TjQ0FW2z7QQh0i6lORCNJwbRclidiX+fOtJQss22HYTTrzGz5Gxe8OxANN6zigh11lj8EGLtUooDnbfvphRFcRyBMCFO48dwW25QJNNSAKLxRB4RL7kJcIQgyLx+4P5rLALGXULReCKNyDcG+Q/CJ/HcJ7EX8WYWdyB8FM8FwKp7N9u1mz8G3j769ESkNHjXMEvIuKBkRo4Pz8zU8sZcIaJ0sai8zI9nmeNx3qBCm7j8dpUZOQZuEEQ0YQifHf1gOz2oVKhnALuroR0EES0SKanZ0eyugZNfgq1xbUvI7V5bDmGILxaV2F6UiicH5pf0PLj0+6Ghuq+fvxxaC1q8axdaWNJjJYSUdQRuXj5CsWR9kJk3HWF2oa2J8mZtCgj6aXu8LTpZ9mVbMAF8+arEoFUAickUClV1QChtEhf9A6QLgECuLS48AAAAAElFTkSuQmCC" width="20" height="15">

            </a>
          </li>

          <li><a href="javascript:void(0)" class="tablinks" onclick="openTab(event, 'Menu2')"><i class="fa fa-pencil" aria-hidden="true"></i></a></li>

          <li><a href="javascript:void(0)" class="tablinks" onclick="openTab(event, 'Menu3')"> T </a></li>

          <li><a href="javascript:void(0)" class="tablinks" onclick="openTab(event, 'Menu4')">Print</a></li>

          <li><a href="javascript:void(0)" class="tablinks" onclick="openTab(event, 'Menu5')"><i class="fa fa-cog fa-lg" aria-hidden="true"></i></a></li>

        </ul>
      </div>



<div id="Menu1" class="tabcontent">

Tab1 content

</div>

<div id="Menu2" class="tabcontent">

Tab2 content

</div>

<div id="Menu3" class="tabcontent">

Tab3 content

</div>

<div id="Menu4" class="tabcontent">

Tab4 content

</div>

<div id="Menu5" class="tabcontent">

Tab5 content

</div>

CSS

    ul.tab {
    list-style-type: none;  
    overflow: hidden;
   /* background-color: #f1f1f1;*/
    padding-top: 5px;
    padding-left: 25px;
}

/* Float the list items side by side */
ul.tab li {
  float: left;
  margin-right: 5px;
  margin-left: 5px;
  margin-top: 5px;

}

/* Style the links inside the list items */
ul.tab li a {
    display: inline-block;    
    text-align: center;
    text-decoration: none;
    transition: 0.3s;

}

/* Change background color of links on hover 
ul.tab li a:hover {
    background-color: #ddd;
}*/

/* Create an active/current tablink class */
/*ul.tab li a:focus{
    background-color: tomato;
    color: #fff;
    border:none;
}*/

.tab li a.active {
    background-color: #c30a0a;
    color: #fff;
    border:1px solid #c30a0a;
    border-radius: 5px;
    text-shadow:1px -1px 5px #000;
}

/* Style the tab content */
.tabcontent {
    background: #fff;
    display: none;
    padding: 20px 12px;
    -webkit-animation: fadeEffect 1s;
    animation: fadeEffect 1s;
}

@-webkit-keyframes fadeEffect {
    from {opacity: 0;}
    to {opacity: 1;}
}

@keyframes fadeEffect {
    from {opacity: 0;}
    to {opacity: 1;}
}

Javascript

    function openTab(evt, linkName) {
    var i, tabcontent, tablinks;
    tabcontent = document.getElementsByClassName("tabcontent");
    for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
    }
    tablinks = document.getElementsByClassName("tablinks");
    for (i = 0; i < tablinks.length; i++) {
        tablinks[i].className = tablinks[i].className.replace(" active", "");
    }
    document.getElementById(linkName).style.display = "block";
    evt.currentTarget.className += " active";
}

【问题讨论】:

    标签: javascript html css inline


    【解决方案1】:

    试试这样的:

    var elements = document.querySelectorAll(selector);
    
    for (var i = 0; i < elements.length; i++) {
        var element = elements[i];
        element.addEventListener("click", function(e) {
          openTab(e, 'Menu'+(i+1))
        });
    }
    

    【讨论】:

    • 感谢 Alexey 的快速回答。我忘了提我一点都不擅长javascript。我可以用这样的东西吗
    • 并使用 jaascript 显示内容?我想尽可能多地保留当前的 ​​javascript 代码,因为它允许我保留选项卡菜单样式。谢谢
    • 当然。我所做的是动态添加 onClick 。保持其他一切完好无损。
    • 我不确定我是否做错了,但我无法让它工作。我应该从 a-tag onclick="openTab(event, 'Menu2')" 和 href="javascript:void(0)" 起飞然后添加代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多