我希望从HTML页面调用javascript函数,并且不希望它依赖于任何事件。该函数位于单独的.js文件中,因为我希望从许多网页中使用它。我也将变量传递给它。我试过这个:
HTML:
<script type="text/javascript" src="fp_footer2.js">
footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
</script>
fp_footer2.js中的函数:
function footerFunction(path, file) {
document.write("<a href=" + path + "/" + file + " target='_blank'>Link to the original web page for this assignment.</a>");
return;
}
(我也尝试将fp_footer2.js文件引用放在标题中,但无济于事。我不确定我是否可以像我在本例中那样'内联'。如果没有,请告诉我
PS:我知道我可以用HTML中的一个简单的'a href =“”来做到这一点。为了我自己的好奇心,我想看看这是否可行。答案 0 :(得分:5)
如果<script>
有src
,则外部脚本会替换内联脚本。
您需要使用两个脚本元素。
传递给函数的字符串也需要是实际字符串而不是未定义的变量(或未定义变量的属性)。必须引用字符串文字。
<script src="fp_footer2.js"></script>
<script>
footerFunction("1_basic_web_page_with_links", "1bwpwl.html");
</script>
答案 1 :(得分:0)
JavaScript将在您的网页呈现时 运行。常见的错误是执行尝试访问页面下方元素的脚本。这会失败,因为脚本运行时元素不存在。
因此,在任何DOM内容可用之前<head>
将运行。
如果您的脚本依赖于DOM元素的存在(如页脚!),请尝试在 DOM元素之后添加脚本。更好的解决方案是在jQuery中使用document ready
事件($(document).ready()
)。或window.onload
。
documen ready
和window onload
之间的区别在于document ready
会在呈现DOM时触发;所以所有初始DOM元素都可用。加载所有资源后window onload
触发的位置,如图像。如果您正在处理这些图片,window onload
非常有用。通常document ready
是正确的。
答案 2 :(得分:0)
也许我误解了你的问题,但你应该能够做到这样的事情:
<script type="text/javascript" src="fp_footer2.js"></script>
<script type="text/javascript">
footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
</script>
答案 3 :(得分:-1)
您是否尝试过从document.ready中调用它?
<script type="text/javascript">
$(document).ready(function() {
footerFunction(1_basic_web_page_with_links, 1bwpwl.html);
});
</script>