我的JS一直存在问题,而不是按照它所说的那样做!多年来我无法理解为什么,但现在我意识到我的脚本infact工作正常,它实际上与我的AJAX调用脚本有关。
获取文件并显示文件的页面是错误显示的位置。如果我正常访问脚本,它的工作完全正常。
是否与可能导致此问题的AJAX请求有关:S?
请看这里的效果。
此图片正确无误:
http://i39.tinypic.com/34fdvu8.jpg
这是错误的(这是通过ajax调用并显示的相同脚本):
http://i43.tinypic.com/2uysl6b.jpg
红色条很好..破坏部分是绿色条在ajax请求中以100%出现,但在直接查看脚本时出现20%(20%是正确答案)。< / p>
为什么会出现这种情况?
<head>
<script type="text/javascript">
function percentage(){
var perc = Math.round((500 / 2500) * 100);
if(perc > 100)
{perc = 100;}
else if(perc < 0 )
{perc = 0;}
d = document.getElementById('health');
d.style.width = perc + "%";
};
onload = percentage;
</script>
</head>
<body>
<div style="width:50%;background-color:red;min-height:15px;">
<div id="health" style="background-color:green;min-height:15px;"></div>
</div>
</body>
答案 0 :(得分:1)
设置innerHTML不会运行与您尝试插入的“内部HTML文档”的“onload”相关联的脚本:
您可以在设置innerHTML之后运行“percentage”函数(如果它由innerHTML插入),或者在IFrame中呈现HTML(因为它将是完整页面将正常工作),或者重构代码以便数据和脚本分别进入并正确连接。
答案 1 :(得分:1)
这很危险,但它可能适合你。
$.get('http://url', function(data) {
// .. your load logic hear
// this line will execute all your script tags
eval($(data).find('script').text());
})
注意:您仍然需要直接执行该函数,因为您的javascript会触发该函数onload(不会被捕获)