怎样用jquery调用外部html

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用jquery调用外部html相关的知识,希望对你有一定的参考价值。

怎样用jquery调用外部html


<!DOCTYPE html>
<html>
<head>
  <style>
 body font-size: 12px; font-family: Arial; 
 </style>
  <script src="

</head>
<body>

<b>Footer navigation:</b>
<ol id="new-nav"></ol>

<script>
  $("#new-nav").load("ajax/test.html #container");
</script>
</body>
</html>

可以用jquery里面的load方法,上面的例子是在ajax/目录下找到test.html文件,把里面id为#container的div加载到该页面div为#new-nav的盒子!

追问

这个是ajax方法吗,我想请问怎样可以控制调取的这个html页面的大小呢

追答

页面的大小;是指页面内容的长宽(px)?还是文件的容量大小(kb)?

追问

是长宽的,我调取出来的页面还变成乱码了,怎么办啊?

追答

明白你的问题所在……

第一,如果你想调取过来的东西放在特定的位置的话,请定义id的位置

#new-navposition:absolute;top:0;left:0;
$("#new-nav").load(……

第二,如果你想调取过来的东西有固定长宽的话,请定义id的长宽

#new-navwidth:200px;height:300px;
$("#new-nav").load(……

第三,至于你出现乱码的问题的话,就是编码的问题了

//主页,js代码,load过来的页面全部编码都要一致,下面这句是定义一个页面的编码为gb2312
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
//引入一个网页的时候也可以定义一下编码,ps:js一般默认是utf-8的
<script type="text/javascript" src="xxx" charset="utf-8"></script>

如果你定义还是出现乱码问题的话,那就是因为除了定义一个页面的编码还是不够的,还一个文件本身的编码问题。不行可以再问我:)

追问

我想把js的编码改成gb2312,应该怎么改呢

追答

你的js一定要改成gb2312吗?这样会很麻烦……因为在js里面没有方法是转码的,只能用户自己定义!
如果你的主页非要设置charset=gb2312"的话,又不想出现乱码,其实还是有方法的
js文件不要定义编码,调用也不要可以定义编码,文件属性改为gb2312, 调用的时候只要你在js完成代码输出就行了,最好不要掺合到主页……
如果你还搞上了数据库编码问题的话,就更麻烦了

参考技术A 问题描述清楚 参考技术B 通过div嵌套iframe实现
<script type="text/javascript">
$(function ()
document.getElementById("ifm").src ="";//Url地址
$("#ifm").load(function ()
var h = document.body.clientHeight;
var w = document.body.clientWidth;
document.getElementById("ifm").height = h + "px";
document.getElementById("ifm").width = w + "px";

);
)
</script>
<body style="overflow-y:hidden;overflow-x:hidden">
<div id="pageone" style="">
<iframe name="ifm" id="ifm" scrolling="yes" style="background-color: transparent;" marginwidth="0" marginheight="0" frameborder="0">
</iframe>
</div>
</body>
参考技术C 不明白你的意思,你是要调用别个页面的dom元素吗

jquery 调用子窗口函数

function (jq, iframe)
//通过工具方法,获取到iframe的window对象
var fwindow = $.window.util.getFrameWindow(iframe);
//用iframe的window对象获取iframe里面的加载jq对象
var ijq = fwindow.jQuery;
ijq("html").ready(ijq.doInit(“1111”));-----这里找不到子窗口中的doInit

<head id="Head1" runat="server">
<title></title>
<script type="text/javascript" src="../Scripts/jquery.min.js"></script>
<script "></="text/javascript">
function doInit(UserCode)
var record = win.getData('record');
$.ajax(
type: "post",
url: "../Ashx/Query.ashx",
data: "Type=queryUser&userCode=",
success: function (data)
if (data.toString() == "error")
$('body').html("用户信息不存在!");
else
var data = JSON.parse(data)[0];
$('#userCode').val(data.UserCode);
$('#userName').val(data.UserName);
$('#userType').val(data.UserType);
$('#remark').val(data.Remark);

,
error: function (data) if (data.toString() == "error") alert("加载数据失败");
);


function doSave(win)
var target = win.getData('datagrid');
var row = win.getData('record');
var index = target.datagrid('getRowIndex', row);
target.datagrid('updateRow',
index: index,
row:
UserType: $('#userType').val(),
Remark: $('#remark').val()

);
win.close();


function doCancel(win)
win.close();

</script>
</head>
<body>
<div class="window-form">
<h3>
我是一个由iframe加载的页面</h3>
<div>
</body>

doInit是在子窗口中吗,那就可以直接通过窗口对象调用啊
fwindow.doInit("1111")
你的写法ijq.doInit(),是调用jquery的函数。。。
参考技术A window.open不行?

以上是关于怎样用jquery调用外部html的主要内容,如果未能解决你的问题,请参考以下文章

阮一峰:jQuery的几篇文章

前端基础之JQuery - day15

jquery怎样调取第三方接口

分离和附加 divs/html jquery

怎样用java调用https接口

论坛出现:“jquery未定义”错误提示,怎样解决?