我有一个函数可以根据浏览器的大小更新元素大小:
window.onresize = function() { setContentHeight(); }
然而,既然我已经使用 AJAX 来交换主题(改变 body 的 innerHTML),这个函数需要改变。新主题不仅有新的图像,还有完全不同的布局。因此,旧的 onresize 函数只会弄乱页面。我想了两种方法来解决这个问题:
方法 1) 将参数传递给稍作修改的函数setContentHeight(themeSelection);
,其中参数用于 switch/case 语句。优点:主题交换只会更改传递的变量的值。缺点:setContentHeight(themeSelection);
将包含所有主题的代码,并且比需要的更长。
方法 2) 通过评估从 XMLHTTPRequest 解析的一些脚本代码来覆盖函数。但是,我不知道如何让 JS 修改现有函数或简单地删除它并启动一个新函数。优点:这个功能会很短 缺点:我不知道怎么做。
你会做什么,或者你会完全做其他事情?如果您的答案是方法 2,那么您能否提供有关如何完成的链接?当然,我自己完成大部分工作没有问题,但如果它是首选方法,我可以使用一些建议和方法#2 的示例。