html运行看模块,html中引入设置公共布局模块html分块

2023-05-16

本文在是点击打开链接的博客技术基础上进行了优化,把同步请求设置成异步请求(防止堵塞)

前端代码如下:

include.js 代码如下(function(window, document, undefined) {

var Includehas43762264 = function() {}

Includehas43762264.prototype = {

//倒序循环

forEach: function(array, callback) {

var size = array.length;

for(var i = size - 1; i >= 0; i--){

callback.apply(array[i], [i]);

}

},

getFilePath: function() {

var curWwwPath=window.document.location.href;

var pathName=window.document.location.pathname;

var localhostPaht=curWwwPath.substring(0,curWwwPath.indexOf(pathName));

var projectName=pathName.substring(0,pathName.substr(1).lastIndexOf('/')+1);

return localhostPaht+projectName;

},

//获取文件内容

getFileContent: function(url,obj) {

var _this = this;

var ie = navigator.userAgent.indexOf('MSIE') > 0;

var o = ie ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();

o.onreadystatechange = function(){

if (this.readyState == 4 && this.status == 200) {

_this.stateChange(this.responseText,obj);

}

};

o.open('get', url, true);

o.send(null);

},

parseNode: function(content) {

var objE = document.createElement("div");

objE.innerHTML = content;

return objE.childNodes;

},

executeScript: function(content) {

var mac = /

var r = "";

while(r = mac.exec(content)) {

eval(r[1]);

}

},

getHtml: function(content) {

var mac = /

content.replace(mac, "");

return content;

},

getPrevCount: function(src) {

var mac = /\.\.\//g;

var count = 0;

while(mac.exec(src)) {

count++;

}

return count;

},

getRequestUrl: function(filePath, src) {

if(/http:\/\//g.test(src)){ return src; }

var prevCount = this.getPrevCount(src);

while(prevCount--) {

filePath = filePath.substring(0,filePath.substr(1).lastIndexOf('/')+1);

}

return filePath + "/"+src.replace(/\.\.\//g, "");

},

stateChange: function(responseText,obj){

//将文本转换成节点

var parent = obj.parentNode;

var includeNodes = this.parseNode(this.getHtml(responseText));

var size = includeNodes.length;

for(var i = 0; i < size; i++) {

parent.insertBefore(includeNodes[0], obj);

}

//执行文本中的额javascript

this.executeScript(responseText);

parent.removeChild(obj);

},

replaceIncludeElements: function() {

var $this = this;

var filePath = $this.getFilePath();

var includeTals = document.getElementsByTagName("include");

this.forEach(includeTals, function() {

//拿到路径

var src = this.getAttribute("src");

//拿到文件内容

$this.getFileContent($this.getRequestUrl(filePath, src),this);

})

}

}

window.onload = function() {

new Includehas43762264().replaceIncludeElements();

}

})(window, document)异步请求,这样就不会造成堵塞了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

html运行看模块,html中引入设置公共布局模块html分块 的相关文章

  • 从 HTML 表单发送数据到 Node.js 服务器

    我正在学习 Node js 我的服务器中有这个 var http require http var url require url http createServer function request response response w
  • Safari 6 (iOS 6) 弹性布局不会换行元素

    我需要将两个框放在列中 这在我测试过的其他浏览器中有效 但在 iOS 6 上的 Safari 6 中无效 例子 http jsfiddle net 5FESj 1 http jsfiddle net 5FESj 1 display webk
  • 图像之间的垂直间距

    我将一张图像剪切为三张相同的图像 现在我将其放入 html 代码中 如下所示 img src images disclosure2 01 jpg alt Disclosure img src images disclosure2 02 gi
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • React.js this.props.data.map() 不是一个函数

    我正在搞乱反应并尝试解析和渲染 json 对象 现在 我只是使用硬编码对象设置它以进行测试 而不是从 ajax 调用中获取它
  • Bootstrap 3 - 使用垂直滚动条水平拖动元素,overflow-y:滚动

    在我的失败之后上一篇文章 https stackoverflow com questions 23586926 bootstrap grid with scrollable affixed column noredirect 1 comme
  • IE 中的文件上传按钮和奇怪的文本光标行为

    我构建了一个上传按钮 其格式类似于典型的 html 按钮 而不是浏览器标准文件上传表单 该方法是设置锚元素的样式并在顶部覆盖透明文件输入元素 这种方法在除 IE 之外的所有浏览器中都可以正常工作 在 IE 中 当用户单击上传按钮时 会出现一
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • CSS 省略号与内联元素?

    我已经调整了 jQuery UI MultiSelect Widget 以便文本将显示所有选定的标签 但如果选择显示太多元素 则文本将被修剪和省略 我是这样做的 ui multiselect selected text display bl
  • 将 SqlDataReader 中的数据放入 HTML 表中

    我在数据库中有一些数据可以用来读取SqlDataReader 我想将它们放入我的 ASP NET 站点的 HTML 表中 但我不知道该怎么做 您可以使用网格视图 它是一个 asp net 控件 您只需将 datareader 绑定到 gri
  • 列表的 CSS 计数器

    我正在尝试在我的有序列表上使用 css 中的计数器增量 但它不起作用 这就是我想要显示的内容 1 Acknowledgements 1 1 blah blah 1 2 blah blah 1 3 blah blah 2 Risk State
  • 如何使用 Javascript 将 HTML 表单数据输出到 XML 文件?

    我目前正在尝试弄清楚如何将 HTML 表单数据输出到 XML 文件 这是我过去几天一直在研究的一个想法 目的是创建一个用于 Windows 7 安装的 autounattended xml 文件 目前我的 HTML 如下
  • 如何在图像上叠加徽标?使用CSS

    正如您所看到的 徽标显示在背景图像上方 但我希望它位于背景图像的中心 这是我的标题 背景需要从页面顶部开始并在菜单之前结束 徽标需要显示在背景图像的中央 我已经尝试了很多 但也许有人遇到了类似的问题 可以帮助我解决这个问题 这张图片显示它几
  • CSS:响应式布局中的高度自动问题

    我在响应式布局中使用 jquery 延迟加载 并使用空白 gif 作为预览图像 为了使延迟加载工作 我必须通过属性设置图像的高度和宽度 预览图像未设置为正确的高度 因为 height auto 似乎是通过 src 而不是通过高度属性计算高度
  • 在 Fabric.js 中进行裁剪的“toDataURL”函数中,Multiplier 属性无法正常工作

    我的原始尺寸canvas is 800X700 我在用clipTo要在画布的选定部分中工作 var rect new fabric Rect left 100 top 50 fill fff width 376 height 602 str
  • 如何在 vuejs 中防止/停止点击传播

    我有一个递归列表 树 每个元素都有一个 click sayHello el id 现在的问题是 因为它是一个嵌套列表 例如 list element 0 01 list el 1 01 list el 2 01 list el 1 02 l
  • 图像未完整显示在身体背景上

    例子 http jsbin com opokev 20 http jsbin com opokev 20 完整图片 http i53 tinypic com 347a8uu jpg http i53 tinypic com 347a8uu
  • 如何让更大的布局适合小设备屏幕?

    我有一个小问题meta viewport元素 问题是我的布局min width比我想要使用的许多屏幕分辨率都要大 所以将其设置为 没有帮助 结果我得到的页面必须缩小以适应设备宽度 如果我什至添加像 它也不起作用 发现了一个黑客来自CSS 技
  • jQuery 删除函数真的删除 Dom 元素吗?

    我真的想知道 jQuery 是否remove http api jquery com remove 函数确实从 DOM 中删除元素 首先 我看了here https stackoverflow com questions 2185760 j

随机推荐