Microsoft JScript运行时错误:’null’为null或不是对象

我有应用程序,我可以在哪里创建动态标签。 并删除选项卡上的横杆选项。 当我试图删除选项卡时,我收到的错误就像

Microsoft JScript运行时错误:’null’为null或不是对象并指向我的Javascript代码。

这是我的JS代码。

 /* <![CDATA[ */ function deleteTab(tabText) { var tabStrip = $find(""); var multiPage = $find(""); var tab = tabStrip.findTabByText(tabText); var pageView = tab.get_pageView(); var tabToSelect = tab.get_nextTab(); if (!tabToSelect) tabToSelect = tab.get_previousTab(); tabStrip.get_tabs().remove(tab); multiPage.get_pageViews().remove(pageView); if (tabToSelect) tabToSelect.set_selected(true); } /* ]]> */  

并在页面lode

  if (!Page.IsPostBack) { RadTab tab = new RadTab(); tab.Text = string.Format("New Page {0}", 1); RadTabStrip1.Tabs.Add(tab); RadPageView pageView = new RadPageView(); pageView.Height = new Unit("50px"); pageView.Width = new Unit("1300px"); RadMultiPage1.PageViews.Add(pageView); BuildPageViewContents(pageView, RadTabStrip1.Tabs.Count); RadTabStrip1.SelectedIndex = 0; } 

如果您尝试使用null对象,则会发生此错误。 在那段代码中,很多东西都可以返回null$find, findTabByText, getPageView, get_nextTab, get_previousTab等。我建议你在使用它之前提醒()一切。 这样你就会发现什么是null

你没有检查任何这些函数调用,看看他们是否真的返回了一些东西。 其中一个是返回null ,但是您的代码没有注意到并尝试在后续语句中使用结果。

在Firebug的Firefox中试试这个,你可能会得到更好的错误信息。

如果你试图过早地调用它,$ find可以返回null。 请记住,ASP.NET AJAX控件是在Sys.Application.Init事件期间创建的。 如果你之前尝试访问它们(例如在window.onload中),$ find()将无效。

Interesting Posts