如何在不插入整个代码的情况下嵌入现有的多级下拉菜单?

编程入门 行业动态 更新时间:2024-10-28 12:16:30
本文介绍了如何在不插入整个代码的情况下嵌入现有的多级下拉菜单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个多层下拉菜单(使用HTML + CSS完成),我想将其放置在许多不同的页面上。以后,我将需要更新此菜单并更改其内容,因此我将HTML保存在了自己的文件中,这样我就可以一次将所有页面的更改发布到屏幕上(而不必遍历每个页面重复

I have a multi-level drop down menu (done using HTML + CSS) that I want to put on a number of different pages. In the future I will need to update this menu and change its contents, so I have saved the HTML in its own file so that I can roll out the changes to all the pages at once (instead of having to go through each page and repeatedly paste in the changed list items).

我尝试过使用iframe,但这会切断菜单项的高度限制(设置足够大的手动高度会留下吨的空白空间,当然):

I have tried using iframe, but this cuts off the menu items with its limited height (setting a manual height that's big enough would leave tons of blank space, of course):

<iframe height="100%" src="menu.html" frameborder="no" width="100%" scrolling="no"></iframe>

我也尝试使用embed(在您将鼠标悬停在菜单项上之前,它看起来还不错,它会滚动

I also tried using embed (this looks fine until you mouse over the menu items -- it just scrolls within the frame):

<embed type="text/html" src="menu.html" width="100%" height="100%"></embed>

当将代码简单地转储到我需要的各个页面中时,菜单功能正常知道那不是问题。问题在于嵌入并从其自己的HTML文件中调用。有没有简单的方法可以使下拉菜单按原样显示?

The menu functions fine when the code is simply dumped into the individual pages I need it on, so I know that's not the issue. It's the embedding and calling it from its own HTML file that is the problem. Is there a simple way to do this that will allow the drop-down menu to appear as it should?

我应该提一下,尽管我有IT部门的帮助这个,这是他们不支持的项目。我只能在正文中编辑网页的HTML,而不能在头部中编辑。我上传为文件的HTML页面(如菜单代码)是例外。因此,存在一些约束。

I should mention that while I have my IT department's blessing to do this, this is a project that they aren't supporting. I can only edit the HTML of my webpages in the body, and not the head. The exception being HTML pages I upload as files (like the menu code). So there are some constraints.

推荐答案

下面是一段冗长的javascript方法,可能会使您的IT人员满意:

Well here is a bit of a long winded javascript approach that might keep your IT guys happy:

window.onload = new Function("load('embed-me.html','content')"); // Replace with URL of your file and ID of div you want to load into. function ahah(url, target) { document.getElementById(target).innerHTML = ' Fetching data...'; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } if (req != undefined) { req.onreadystatechange = function() {ahahDone(url, target);}; req.open("GET", url, true); req.send(""); } } function ahahDone(url, target) { if (req.readyState == 4) { // only if req is "loaded" if (req.status == 200) { // only if "OK" document.getElementById(target).innerHTML = req.responseText; } else { document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText; } } } function load(name, div) { ahah(name,div); return false; }

不是我写的( LINK )(我刚刚添加了在网页上运行加载位)。

Not written by me(LINK) (I just added the run on page load bit).

经过测试且可以正常工作(至少在Chrome中)。虽然如果用户禁用了javascript,则您的网站将没有菜单!

Tested and working (in Chrome at least). Though your site will have no menu if the user has javascript disabled!

编辑:

示例...

<body> <script type="text/javascript" src="embed-me.js"></script> <!-- load the javascript --> <div id="content"></div> <!-- html will be embedded here --> </body>

更多推荐

如何在不插入整个代码的情况下嵌入现有的多级下拉菜单?

本文发布于:2023-11-23 09:19:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1620918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:情况下   菜单   代码   如何在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!