【问题标题】:javascript error: this.node is null or not an objectjavascript 错误:this.node 为空或不是对象
【发布时间】:2011-05-01 12:09:16
【问题描述】:

我正在使用 ASP.NET 3.5、c#、Visual Studio 2010。我制作了一个主文件和一个使用该主文件的默认页面。我在master中放置了一对asp:contentplaceholders,并在使用这个master的页面中放置了相应的代码。我还在内容页面(而不是主页面)中插入了这样的 JavaScript:

<asp:Content ID="Content6" ContentPlaceHolderID="Mainpage" Runat="Server">

<script src="path1" type="text/javascript"></script>  
<script src="path2" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function () {
        var options = {
            //some java code
        };

        $(".mycssclass").effect(options);
    });
</script>
</asp:Content>

在运行网站时,我在 Visual Studio 中收到以下运行时错误:

Microsoft JScript 运行时错误:“this.node”为空或不是对象

它指向 JavaScript 中的一些函数,比如

this.node.onload=function(){..............//I am not a java guy so do not know much about this  

我哪里错了?为什么站点编译正确但抛出此运行时错误?

我也尝试在&lt;head&gt; 的主文件中插入这个java 代码,但同样的错误。这很紧急,所以如果有经验的人可以查明将代码放在哪里可以快速解决我的问题。

【问题讨论】:

  • Java 不是 javascript。除了字母java和表面上相似的语法之外,它们彼此没有任何关系。
  • 首先,Java != Javascript。其次,如果你尝试$(document).ready( function() { //code goes here });,而不是$(function() { //code goes here });
  • 我突然想到,您告诉我们 Visual Studio 编译器正在检查您的代码。那不一样。为此,我想知道您是否在某个地方有错字。要么,要么你真的没有按照 jQuery 的预期使用方式来使用 jQuery。 this.node.onload=function(){}; 的目的是什么?在页面准备好时运行一些代码?
  • 是的..它实际上放大了我从数据库加载的图像
  • @VP ~ 那你用错了代码。请更新以上内容以匹配您当前的文件。

标签: javascript asp.net visual-studio-2010 .net-3.5 runtime-error


【解决方案1】:

您是否包含了对 jQuery 库的引用?一个好的做法是将 jQuery 包含在 Master 中

<head>
   <script type="text/javascript" 
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
   </script>
   <!-- the remainder of your .js references should follow-->
</head>

如果您打算让该脚本在“页面加载”时运行,请确保您已正确设置:

$(document).ready(function() {
    // put all your jQuery goodness in here.
});

More info on jQuery document ready.

【讨论】:

  • 你的意思是我应该在我的主文件中包含上面的行?标题标签对吗?
  • 如何检查对 jQuery 库的引用?我的项目的 bin 文件夹中似乎没有代表 jQuery lib 的 dll。
  • 不,如果您愿意,您可以将其包含在适当的页面中,而不是主文件中。但是你应该继续在主文件中链接那个,以后会更方便。
  • @VP ~ 你不需要 jQuery dll。你需要像他在上面给你的那样链接。
  • @drachenstern:为简单起见,我建议将 jQuery 脚本引用放在 Master 中。
【解决方案2】:

我不确定你到底在用这个 sn-p 代码做什么,但我认为它的语法不正确。

您可能应该将其重写为如下所示:

$(document).ready(
function () {
        var options = {
            //some java code
        };

        $(".mycssclass").effect(options);
});

只是将函数传递给 jQuery 选择器可能会有些奇怪。

【讨论】:

  • 是的,Josh .. 这正是查询的样子......但我仍然有这个错误
  • @VP - appologies then...但是你的问题表明你停止了 $(document).ready() 调用。您应该更新您的问题以更正此问题,以免其他人认为问题出在此处。
  • 我还有 1 个问题。现在 javascript 工作正常,并在我的网页中的图像上产生我想要的缩放效果。但是现在,只要我将鼠标悬停在它上面,它就会缩放。我想对我的 asp.net/c# 代码稍作修改。我想在按下按钮时激活缩放效果。所以我会放一个按钮,上面写着“如果你想缩放,请按这里”,当按下这个按钮时,我想在我的 C# 事件处理程序代码中做一些事情(比如激活 javascript)。我怎样才能做到这一点?有什么想法吗?
【解决方案3】:

谢谢大家! javascript中的语法或我首次包含它的位置/页面都没有问题。我只是发现错误出在其他地方。此 javascript 适用于 &lt;img> 标记。它在&lt;img> 标签中缩放图像。我使用的是&lt;asp:ImageButton> 而不是&lt;img>。我一更换它就可以完美运行。感谢大家的时间和知识分享。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多