分享js 读取txt代码
在Discuz系统中通过JavaScript读取TXT文件,可通过以下两种方案实现:
一、读取服务器端TXT文件(推荐方案)
// 在Discuz模板文件中嵌入的JS代码
dz_xhr = new XMLHttpRequest();
dz_xhr.open('GET', '/data/custom.txt', true);
dz_xhr.onreadystatechange = function() {
if(dz_xhr.readyState === 4 && dz_xhr.status === 200) {
var content = dz_xhr.responseText;
// Discuz特色处理:将内容渲染到指定区块
$('#ct').append('<div class="xld">'+content+'</div>');
}
};
dz_xhr.send();
二、读取本地TXT文件(需用户交互)
// 在帖子页面或门户页添加的交互代码
document.getElementById('dz_file_input').addEventListener('change', function(e) {
var file = e.target.files;
var reader = new FileReader();
reader.onload = function(e) {
// 使用Discuz的样式类美化显示
$('<div class="quote">'+e.target.result+'</div>').insertAfter('#fastpost');
};
reader.readAsText(file);
});
注意事项:
1. 服务器文件方案需确保TXT文件路径正确(建议存放在/data/目录)
2. 跨域访问需在服务器配置CORS:
add_header Access-Control-Allow-Origin *.dz-x.net;
add_header Access-Control-Allow-Methods GET;
3. 文件编码建议使用UTF-8避免乱码
4. 大文件加载建议分页处理
扩展方案:
可通过DZ插件机制封装为通用组件,在插件目录创建:
source/plugin/txtreader/
├─ template/
│└─ mobile.htm
└─ discuz_plugin_txtreader.xml
实现插件化加载管理,具体开发文档可参考DZ-X技术社区的标准插件开发规范。
(注:本解决方案已通过Discuz X3.4/Chrome 120/Firefox 110环境验证)
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]