javascript - 使用下拉菜单自动更改代码

标签 javascript jquery html css iframe

我正在尝试弄清楚如何使用下拉菜单更改 HTML 代码。

这是我目前拥有的

<div class="dropdown">
    <button onclick="myFunction()" class="dropbtn">Languages</button>
    <div id="myDropdown" class="dropdown-content">
        <a href="(URL LINK)/clients/1080/Canon.html?lc=uk" target="test">English</a>
        <a href="(URL LINK)/clients/1080/Canon.html?lc=de" target="test">German</a>
        <a href="(URL LINK)/clients/1080/Canon.html?lc=fr" target="test">French</a>
        <a href="(URL LINK)/clients/1080/Canon.html?lc=es" target="test">Spanish</a>
        <a href="(URL LINK)/clients/1080/Canon.html?lc=it" target="test">Italian</a>

    </div>
</div>

这会更改下拉列表下方的 iFrame。

 <iframe name="test" src="(URL LINK)/clients/1080/Canon.html?lc=uk" scrolling="no" seamless="seamless"></iframe>

在 iFrame 下,我有一个预代码显示如何嵌入上面的 iFrame。

<pre><code>&lt;iframe&gt;src="Path of the zip file" scrolling="no" seamless="seamless"&gt;&lt;/iframe&gt;
          </code></pre>

我正在使用 Javascript

    /* When the user clicks on the button,
toggle between hiding and showing the dropdown content */
function myFunction() {
    document.getElementById("myDropdown").classList.toggle("show");
}

// Close the dropdown menu if the user clicks outside of it
window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {

    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
}

当用户单击下拉菜单并选择语言时,是否可以实现 iFrame 文件夹托管位置的链接更改?

例如,用户会单击下拉菜单并选择德语。预代码将显示带有德国文件夹链接的 iframe。 (希望这是有道理的)

如果有人可以帮助我,我将不胜感激。

我尝试过但失败了

Jquery

 myFunction() {
    $("#myDropdown > a").on('click', function(){
        var url= $(this).attr('href'); //Get URL from a href
        var $iframe = $('#iframeId'); // Get Iframe id
        $iframe.attr('src',url);    // Insert new URL

        var v= $('#code').text(); //get Iframe inside code tags
        var code = jQuery('<div />').html(v).text(); //Convert to HTML object
        var n = $(code).attr("src",val); //change the src
        var fin = $(n).prop("outerHTML"); //get the HTML
        var finHTML = jQuery('<div />').text(fin).html(); //Convert HTML into HTML entities
        $('#code').text(finHTML); // Change code HTML
    });
}

iFrame

<iframe src="#" id="iframeId"></iframe>

导出 iFrame(在文本中)

<pre><code id="code">&lt;iframe src="Path of the <strong>zip file downloaded from email</strong>" scrolling="no" seamless="seamless"&gt;&lt;/iframe&gt;
  </code></pre>

我已经尝试了上面的方法,但它使下拉菜单无法工作。如果有人能帮我解决这个问题,我将感激

最佳答案

试试这个。它会改变 srciframe里面<pre>根据href点击的 <a> .

var myDropdown = document.getElementById('myDropdown');
var links = myDropdown.getElementsByTagName('a'); // get all links inside #myDropdown

function changeSRC(e) {
  var link = e.target.href;    // get href of clicked link
  var code = document.getElementsByTagName('code')[0];
  code.innerHTML = '&lt;iframe&gt;src=&quot;'+link+'&quot; scrolling=&quot;no&quot; seamless=&quot;seamless&quot;&gt;&lt;/iframe&gt;';
}

for( var i=0; i<links.length; i++) {
  links[i].addEventListener('click', changeSRC);    // call changeSRC function when any link is clicked
}
<div class="dropdown">
  <button onclick="myFunction()" class="dropbtn">Languages</button>
  <div id="myDropdown" class="dropdown-content">
    <a href="(URL LINK)/clients/1080/Canon.html?lc=uk" target="test">English</a>
    <a href="(URL LINK)/clients/1080/Canon.html?lc=de" target="test">German</a>
    <a href="(URL LINK)/clients/1080/Canon.html?lc=fr" target="test">French</a>
    <a href="(URL LINK)/clients/1080/Canon.html?lc=es" target="test">Spanish</a>
    <a href="(URL LINK)/clients/1080/Canon.html?lc=it" target="test">Italian</a>

  </div>
</div>
<pre>
  <code>&lt;iframe&gt;src="Path of the zip file" scrolling="no" seamless="seamless"&gt;&lt;/iframe&gt;</code>
</pre>

关于javascript - 使用下拉菜单自动更改代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487085/

相关文章:

javascript - State.go() 在地址页面中显示 url 但不刷新 html View

javascript - 如何仅在每个输入的数字后添加逗号

javascript - 从 JSON 数组生成 HTML 列表

javascript - 如何根据其子项强制包装 div 保持其最佳宽度

html - 导航栏在大型媒体而非手机上向后

javascript - 如何使用 Google Apps 脚本向超链接函数添加变量

javascript - ES6 import 相当于 require() 没有导出

javascript - 如何在 Controller 中声明 $rootscope 并在另一个 Controller 中访问它

javascript - jquery 模式淡入淡出问题

javascript - 如何自动扩展从输入字段过滤的AngularJS数据?