我的JavaScript作为内联代码工作,但不作为包含文件.有什么好主意吗?
My JavaScript works as inline code but not as an include file. Any ideas why and how to fix it?
我有这样一个表单:
<form id="searchForm" class="search_field" method="get" action="">
...
...
</form>
然后这个javascript:
var form = document.getElementById("searchForm");
form.doSearch1.onclick = searchPage;
form.doSearch2.onclick = searchPage;
form.showFeatureChoices.onclick = function( )
{
var cbs = form.featType;
for ( var c = 0; c < cbs.length; ++c )
{
cbs[c].checked = false;
}
document.getElementById("featuresDiv").style.display = "block";
}
function searchPage()
{
var form = document.getElementById("searchForm");
var searchText = form.searchBox.value.replace(/-/g,"");
form.searchBox.value = searchText;
if (searchText != "")
{
// collect features to search for:
var features = [ ];
var featTypes = form.featType;
for ( var f = 0; f < featTypes.length; ++f )
{
if ( featTypes[f].checked ) features.push( featTypes[f].value );
}
featureList = "'" + features.join("','") + "'";
searchMsg("Searching for '" + searchText + "' ...");
// startStatusUpdate(1000);
// findTask.execute(findParams, showResults);
var accord = dijit.byId("accordianContainer");
var resultsPane = dijit.byId("resultsPane");
accord.selectChild(resultsPane,true);
doSearch( searchText, featureList );
}
else
{
searchMsg("No search criteria entered, enter search text");
}
}
如果我将此代码嵌入到与<form...
相同的文件中,它可以正常工作。
然而,如果我有这个js在另一个文件,并使用作为包含文件:
<script type="text/javascript" src="Views/JS/main.js"></script>
我得到以下错误:"Object required",它指向这些行:
form.doSearch1.onclick = searchPage;
form.doSearch2.onclick = searchPage;
有什么办法解决这个问题吗?
只是一点信息,上面显示的js代码在一个名为main.js的文件中,该文件位于一个名为js的文件夹中,js位于一个名为Views的文件夹中。的
Thanks lot in advance
当您在同一页面中包含JavaScript代码时,它与form
元素的关系在哪里?(在它之前还是之后?)如果引用外部JavaScript文件呢?
我猜测,在前一种情况下,代码是在文件的末尾,而在后一种情况下,script
参考标签是在开始?
如果这是真的,那么这段代码是在DOM准备好之前执行的:
var form = document.getElementById("searchForm");
form.doSearch1.onclick = searchPage;
form.doSearch2.onclick = searchPage;
如果form
标记还没有呈现给DOM,那么第一行将找不到任何东西,随后的行将失败。一种方法是将script
参考标签放在最后,但这对我来说似乎是一种hack。有时有很好的理由将它们保留在页头中,其中最重要的是在许多情况下更清晰地管理代码。还有其他方法可以延迟执行JavaScript代码,直到DOM准备好。
相关文章:
- 如何将Bundle中的javascript文件包含到一个trick文件中
- 如何使用webpack将全局JS文件包含到我的React项目中
- 如何在从外部连接时将外部文件包含到node-js项目中
- 包含的文件中引发引用错误..除非调用文件包含慢速代码
- 如何使用浏览器“需要”配置文件,但不将此文件包含在捆绑包中
- 如何将 XML 文件包含在摩卡测试用例中
- 为什么我的 ajax 调用没有生成,因为我包含 ajax 的 js 文件包含在 iframe 中
- AngularJS应用程序:如何将.js文件包含到index.html中
- 执行批处理文件的Javascript,该文件包含基于每个会话的环境变量设置
- 如何将php文件包含到我的html文件中
- 如何将 CSS 和 JS 文件包含在 PHP 模板中
- gulp文件包含和翡翠嵌套问题
- 如何将一个 JavaScript 文件包含在另一个 JavaScript 文件中 这不是从浏览器中运行的
- 在服务器端环境或命令行环境中将一个 javascript 文件“包含”到另一个文件
- Mutilpe JS文件包含在另一个js文件中有时不起作用
- 如何将属性传递给 PHP 中的 JS 文件包含
- 将带有 php 和 javascript 变量的 php 文件包含在 ajax 文件中
- 用PHP创建的文本文件包含页面代码
- 我想使用 JavaScript 将外部 PHP 文件包含在 HTML 页面中
- shadow-root:有没有办法将外部JavaScript文件包含在shadow-root中