我最近需要混合处理UTF-8和GBK/或GB2312编码。编写UTF-8和GBK编码互相转换的程序是比较麻烦的,昨天无意中发现一个方法,就是借助于JavaScript+iframe框架。例如父框架页的编码可以是GBK,子框架页的编码可以是UTF-8(反之同理),当父框架页和子框架页互相赋值的时候,完全不用转换编码,而不产生乱码。利用这个原理,可以做很多特殊的处理,简化了大量的步骤,在IE和Firefox浏览器下测试成功。
例如在GBK/或GB2312编码模式下,要对相应的UTF-8页的数据进行处理,这时候通过JavaScript+iframe框架就能达意想不到的效果。利用这个原理,也可以把整站的文件批量在UTF-8和GBK/或GB2312编码中互换。但它唯一的缺点是,只能是父框架页和子框架页之间互相赋值,这时必须做一个数据提交的程序,才能转换编码,也就是说,在自动赋值之后,需要鼠标点击一下进行提交才能实现对要写入的数据进行编码转换。这个缺点,可以用JavaScript的submit()函数实现自动提交。以PHP为例,写入数据的编码格式,是取决于<meta>标签里声明的charset。
由于时间的关系,就不做具体的实例了,因为做一个具体的实例要花费很多的时间,重要的步骤一是使用iframe标签嵌入一个子框架页,子框架页的编码与父框架页的编码不同。重要的步骤二是必须掌握父框架页和子框架页互相赋值的方法,子框架页给父框架页赋值的方法比较简单,就是top.***.innerHTML,或者是top.***.value,方法和在同一页赋值的方法一样,只是多了一个top加点儿。
相反的,父框架页给子框架页赋值,就复杂很多,昨天测试了一下午才成功。父框架页给子框架页赋值,写直接赋值的命名语句不给赋值,必须建立自定义函数才能赋值。网上几乎没有这个直接赋值的方法,我找了很久都没找到,网上的方法是需要通过鼠标点击触发事件,才能赋值,可以在Google或百度搜索“iframe 赋值”。我把它改成<body onload=abc();>,最后完美地成功了。这个abc()自定义函数为:function abc(){document.frames['aac'].document.all.da.value="赋值";}。说明:这里的aac代表的是iframe里的name=。后面的document.all.da.value,其中da是子框架页里一个表单框的名字,这里必须写为document.all.da.value,document.all不能省略,否则不给赋值。如果子框架页里的表单da所在的form有名称,例如<form method=post name=ag>,那么这个abc()也可以写为:function abc(){document.frames['aac'].ag.da.value="赋值";}。
本文是提供一种重要的方法,2个重要的步骤,希望读者能够熟练掌握这个方法。要熟练掌握,可能至少要花一天时间做测试。这个方法,在大型或者小型的程序里,在必要的时候能够发挥重要的作用。特别是在一个混合编码的网站,这是一种极好的方法。没有更具体的代码了,上述的步骤已经写得很清楚了。当然,如果万一出现赋值时出现乱码,就可以通过复制、粘贴、提交来转换编码。例如百度的网站,就是成功地使用UTF-8和GBK两种编码,而没有产生乱码。
我在前面的文章写过,中文如果使用GB2312或GBK编码,可以节省很多字节。而英文的编码,无论是UTF-8还是GBK,字节数量都是一样的,韩文则必须使用UTF-8编码。这是因为,在UTF-8编码下,中文汉字、英文字母、韩文单字所占的字节分别为:3、1、3;在GB2312或编码GBK下,中文汉字、英文字母、韩文单字所占的字节分别为:2、1、8。在GB2312或编码GBK下,文本格式为ANSI,ANSI文件格式无法保存韩文或全角的Unicode码,字符会被转化成한국어的形式(한국어)。
refurl:http://www.auiou.com/relevant/00000818.jsp
相关推荐
然而,由于浏览器的同源策略限制,`iframe`内的页面与包含它的父页面在不同源时,不能直接访问彼此的DOM或JavaScript变量,这就引出了"iframe父向子传值"的问题。 在标题"iframe父向值实例.rar"和描述中提到的解决...
"iframe子父页面调用js函数示例" 在实际项目中,iframe 子父页面调用 js 函数是非常有用的。下面是一个示例,演示如何在 iframe 子页面中调用父页面的 js 函数,以及如何在父页面中调用 iframe 子页面的 js 函数。 ...
### Iframe父页面与子页面互相调用 在Web开发中,经常需要用到iframe来嵌套显示其他页面。本文将通过一个具体的示例介绍如何实现iframe中的父页面与子页面之间的互相调用,以及子页面中再嵌套iframe时的相关操作。 ...
使用iframe框架可以在不离开当前页面的情况下打开新的页面,这对于需要在同一页面内操作多个内容块的场景非常有用。 在iframe框架中打开页面,通常涉及到HTML和JavaScript技术。这里涉及到的知识点主要包括: 1. ...
"可以左右拖动的iframe框架"是一种创新的实现方式,它允许用户通过鼠标在水平方向上移动iframe,从而提供了更灵活的网页布局和用户体验。下面将详细讲解这个知识点。 **Iframe(Inline Frame)** 是HTML中的一个...
"iframe框架与主框架通信模块例子.zip" 提供了一个解决方案,它演示了如何在iframe和其父页面(即顶层页面)之间实现跨域通信。这种通信方式在处理数据交换、状态共享或用户交互时非常有用。下面我们将详细探讨这一...
理解并熟练掌握iframe的使用及其与父、子页面的交互方式,对于Web开发人员来说是非常重要的技能。在实际项目中,要根据需求选择合适的通信方法,并注意跨域问题的处理,以确保代码的稳定性和安全性。
我们可以定义一个函数来获取子IFRAME框架的高度,然后将其设置为table元素的高度,以便子IFRAME框架的高度能够正确地自动调整。 通过使用JavaScript来让IFRAME框架的高度自适应,我们可以实现IFRAME框架的高度自动...
然而,在iframe框架中实现打开多窗口的方法,则是一项更为高级且实用的技术。本文将基于给定文件的信息,深入探讨在iframe框架中实现多窗口打开的方法及其背后的原理。 ### 关键知识点一:`target`属性与`name`属性...
**标题解析:** "iframe ajax前端框架" 指的是一种在前端开发中结合了`iframe`和`AJAX`技术的框架。`iframe`(Inline Frame)是HTML中的一个元素,可以用来在一个网页中嵌入另一个网页,常用于实现页面部分刷新或...
说明: <br>主要用于框架(iframe)程序 现在演示的是htm页面,也适用于asp/asp.net,当然jsp或者php也应该能用,不过我本人不感兴趣,没有测试过。 打开目标页面(a.html)之后,目标页面后自动启动父...
【iframe框架后台模板】是一种基于iframe技术构建的静态前端管理系统,其主要特点是利用iframe的特性来实现多页面的集成和管理。在Web开发中,iframe(Inline Frame)是一种嵌入式框架,允许在一个HTML文档中嵌入另...
本篇文章将深入探讨如何在`iframe`中调用JavaScript,实现父页面与子页面之间的方法交互。 一、iframe的基本使用 在HTML中,我们可以通过`<iframe>`标签来插入一个框架,例如: ```html <iframe src="child....
1. **通信与数据共享**:由于iframe内的页面与父页面属于不同的上下文,它们之间的通信通常依赖于`postMessage` API,允许不同源的窗口之间安全地传递信息。 2. **安全性**:确保嵌入的页面来自可信源,防止跨站...
标题“demo_DEMO_子页面刷新父页面iframe_”暗示我们关注的焦点是关于如何在子页面中触发父页面的刷新操作,特别是在一个IFrame上下文中。下面将详细探讨这个主题。 首先,我们需要了解IFrame(内联框架)的基本...
在网页开发中,有时我们需要在不同的页面或者框架之间进行数据交互,这时`iframe`子向父页面传递值就显得尤为重要。本示例“iframe子向父传值实例”旨在提供一个解决方案,帮助开发者应对跨域问题,从而实现iframe...
后台模板框架iframe是一种常见的网页开发技术,主要用于构建复杂的Web应用程序。在现代的Web开发中,iframe(内联框架)是一个非常实用的HTML元素,它允许在一个HTML文档内部嵌入另一个HTML文档,从而实现页面的分块...
"点击可收缩"这一特性意味着,该iframe框架可以被设计成用户点击后能够隐藏或显示,增加了交互性和页面空间的有效利用。 折叠框架通常通过JavaScript库或CSS样式来实现。例如,jQuery和Bootstrap框架提供了丰富的...
在网页开发中,有时我们需要在一个页面(子页面)中访问另一个页面(父页面)的数据或控制元素,这种情况下,`Iframe` 提供了一个解决方案。本文将深入探讨如何通过 `Iframe` 获取父页面的变量和控件。 首先,我们...