(转)利用document.write输出静态HTML(无乱码) - [JavaScript]

本文介绍了一种利用JavaScript动态更新静态HTML页面内容的方法,通过定义变量并使用document.write()函数,可以在不重新生成整个静态页面的情况下,仅修改特定部分的内容。此技巧适用于动态网页全站静态化后,需要调整布局时的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 今天我研究腾讯网代码时发现一段有用的代码,在此贴出来供大家使用和借鉴,代码的功能主要是用JavaScript的document.write方法输出静态的HTML内容代码,代码如下:


<script language="javascript">
String.prototype.escNone=function(){return this.toString()};

var strHtml='<div class="footer" id="copyright"><p class="footermenu"><a target="_blank" href="http://www.tencent.com/">关于腾讯</a> | <a target="_blank" href="http://www.qq.com/contract.shtml">服务条款</a> | <a target="_blank" href="http://adver.qq.com/">广告服务</a> | <a target="_blank" href="http://hr.tencent.com/">腾讯招聘</a> | <a target="_blank" href="http://service.qq.com/">客服中心</a> | <a target="_blank" href="http://www.qq.com/map/">网站导航</a></p></div>';
document.write(strHtml.escNone());
</script>


一些网站如果动态网页做了全站静态生成以后,如果想改动网页的一些布局,例如想更改导航栏或友情链接,在后台修改以后都需要整站全部静态化,使用上述JS语句代码放在*.JS文件里,引用至HTML文档或模版页面里,如果静态页面生成以后想修改局部内容,就可以修改JS文件,HTML页面自动更新,怎么样不错吧,还不马上来测试一下,挺好的,呵呵,常来http://azfly.cn转转,一定有你想要的程序代码!

我看到有些程序员使用document.write("<a href=\"#\">aa<\/a>")这种形式做更新静态输出,使用很多“\”,都不如以上代码来的省事一些!

以上JS代码只适用于输入静态的HTML, 如果在输出的代码中存在JS脚本,那么一定要使用转义符“\”使JS中的特殊字符“'”,“"”,“\”,“/”原样输出。否则程序将报错,一定要注意!

建议:代码使用在频繁更新的模块里,注意定义的变量代码的正确与否

http://azfly.cn/logs/22/72.html

转载于:https://www.cnblogs.com/cyrix/articles/2160628.html

### 解决HTMLPDF时出现空白页的问题 当尝试将HTML页面换为PDF文件时,如果遇到空白页的情况,可能由多种原因引起。以下是可能导致此问题的原因以及相应的解决方案: #### 可能原因及解决方法 1. **CSS样式冲突** 如果HTML文档中的某些CSS样式未被正确解析或应用,则可能会导致内容无法正常显示在PDF中。例如,在某些情况下,`display: none;` 或 `visibility: hidden;` 的属性会隐藏部分内容[^1]。 - 确保移除任何不必要的隐藏样式。 - 使用工具调试并验证最终渲染效果。 2. **JavaScript执行失败** 部分HTML页面依赖于动态加载的内容(通过JavaScript实现)。然而,许多PDF生成库并不支持完全运行JavaScript逻辑。这可能是造成空白页的主要原因之一[^2]。 - 尝试禁用JavaScript功能以查看是否有影响。 - 提前预处理HTML页面,确保所有动态内容已静态化后再进行换。 3. **外部资源加载失败** PDF生成器可能无法访问网络上的图片、字体或其他外部资源。这种情况下,即使HTML本身无误,也可能因为缺少这些资源而显得为空白页[^3]。 - 检查HTML源码中是否存在指向不可达URL的链接。 - 换之前下载所有必要的外部资产并将它们嵌入到本地环境中。 4. **编码错误** 不同平台之间的字符集差异有时也会引发意外行为。比如UTF-8编码下的特殊字符未能妥善处理就容易出现问题。 - 明确指定HTML头部meta标签内的charset参数值应设为utf-8。 - 对敏感数据做适当义操作以防乱码现象发生。 5. **软件版本兼容性** 所使用的abcpdf等第三方组件可能存在特定版本间的不一致表现。旧版程序或许不具备新特性或者修复过的漏洞。 - 更新至最新稳定发行版试试看能否解决问题。 - 查阅官方文档了解各版本间的变化记录以便调整策略。 ```python from io import BytesIO import weasyprint def html_to_pdf(html_content): document = weasyprint.HTML(string=html_content) output_buffer = BytesIO() document.write_pdf(target=output_buffer) return output_buffer.getvalue() # Example usage: if __name__ == "__main__": sample_html = """ <!DOCTYPE html> <html lang="en"> <head><title>Test Page</title></head> <body>Hello World!</body> </html> """ result = html_to_pdf(sample_html) with open('output.pdf', 'wb') as f: f.write(result) ``` 上述Python脚本展示了如何利用WeasyPrint库来完成简单的HTML到PDF换过程。它可以帮助开发者快速测试不同输入条件下的输出质量,并据此优化原始素材结构直至满足需求为止。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值