草庐IT

JavaScript 错误 : Cannot read property 'parentNode' of null

coder 2024-05-16 原文

我正在使用的 javascript:

javascript: c = '{unit}, ({coords}) {player} |{distance}| {return}';
p = ['Scout', 'LC', 'HC', 'Axe', 'Sword', 'Ram', '***Noble***'];

function V() {
    return 1;
}
window.onerror = V;

function Z() {
    d = (window.frames.length > 0) ? window.main.document : document;
    aid = d.getElementById('editInput').parentNode.innerHTML.match(/id\=(\d+)/)[1];

    function J(e) {
        vv = e.match(/\d+\|\d+/g);
        return (vv ? vv[vv.length - 1].match(/((\d+)\|(\d+))/) : null);
    }
    function K(e) {
        f = parseInt(e, 10);
        return (f > 9 ? f : '0' + f);
    }
    function L(g, e) {
        return g.getElementsByTagName(e);
    }
    function N(g) {
        return g.innerHTML;
    }
    function M(g) {
        return N(L(g, 'a')[0]);
    }
    function O() {
        return k.insertRow(E++);
    }
    function W(f) {
        return B.insertCell(f);
    }
    function P(g, e) {
        g.innerHTML = e;
        return g;
    }
    function X(e) {
        C = B.appendChild(d.createElement('th'));
        return P(C, e);
    }
    function Y(f) {
        return K(f / U) + ':' + K(f % (U) / T) + ':' + K(f % T);
    }
    U = 3600;
    T = 60;
    R = 'table';
    S = 'width';
    s = L(document, R);
    for (j = 0; j < s.length; j++) {
        s[j].removeAttribute(S);
        if (s[j].className == 'main') {
            s = L(L(s[j], 'tbody')[0], R);
            break;
        }
    }
    D = 0;
    for (j = 0; j < s.length; j++) {
        s[j].removeAttribute(S);
        if (s[j].className = 'vis') {
            k = s[j];
            if (t = k.rows) {
                D = t.length;
                break;
            }
        }
    }
    for (E = 0; E < D; E++) {
        l = t[E];
        m = (u = l.cells) ? u.length : 0;
        if (m) {
            u[m - 1].colSpan = 5 - m;
            if (N(u[0]) == 'Arrival:') {
                Q = new Date(N(u[1]).replace(/<.*/i, ''));
            } else {
                if (N(u[0]) == 'Arrival in:') {
                    v = N(u[1]).match(/\d+/ig);
                }
            }
            if (E == 1) {
                G = M(u[2]);
            }
            if (E == 2) {
                w = J(M(u[1]));
            }
            if (E == 4) {
                x = J(M(u[1]));
            }
        }
    }
    y = v[0] * U + v[1] * T + v[2] * 1;
    n = w[2] - x[2];
    o = w[3] - x[3];
    F = Math.sqrt(n * n + o * o);
    H = F.toFixed(2);
    E = D - 2;
    s = L(k, 'input');
    i = s[1];
    h = s[0];
    h.size = T;
    B = O();
    P(W(0), 'Distance:').colSpan = 2;
    P(W(1), H + ' Fields').colSpan = 2;
    B = O();
    X('Unit');
    X('Sent');
    X('Duration');
    X('Name to');
    c = c.replace(/\{coords\}/i, w[1]).replace(/\{distance\}/i, H).replace(/\{player\}/i, G);
    for (j in p) {
        z = Math.round([9.00000000, 10.00000000, 11.00000000, 18.0000000015, 22.00000000, 30.00000000, 35.0000000][j] * T * F);
        A = z - y;
        if (A > 0) {
            I = Y(z);
            B = O();
            P(W(0), p[j]);
            P(W(1), A < T && 'just now' || A < U && Math.floor(A / T) + ' mins ago' || Y(A) + ' ago');
            P(W(2), I);
            C = W(3);
            q = C.appendChild(i.cloneNode(1));
            r = C.appendChild(h.cloneNode(1));
            r.id = 'I' + j;
            r.value = c.replace(/\{duration\}/i, I).replace(/\{sent\}/i, new Date(Q.valueOf() - z * 1000).toLocaleString().replace(/.\d{4}/i, '').replace(/(\w{3})\w*/i, '$1')).replace(/\{return\}/i, new Date(Q.valueOf() + z * 1000).toString().replace(/\w+\s*/i, '').replace(/(\d*:\d*:\d*)(.*)/i, '$1')).replace(/\{unit\}/i, p[j]).replace(/\{attack_id\}/i, aid);
            q.onmousedown = new Function('h.value=d.getElementById(\'I' + j + '\').value;');
        }
    }
}
Z();

我收到的错误:

Uncaught TypeError: Cannot read property 'parentNode' of null

URL 如下所示:

game.php?village=2100&id=4348754&type=other&screen=info_command

最佳答案

有两种可能:

  1. editInput是错字,该元素的实际 ID 不同(ID 区分大小写)。
  2. 您正在执行这段代码,而 DOM 还没有准备好。为防止这种情况,请在 </body> 之前执行代码结束标记,或将其包装在 load 的事件处理程序中window的事件或 DOMContentLoaded document的事件.

已编辑 如何包装您的代码:

window.onload = function() {
    //your code here
};

关于JavaScript 错误 : Cannot read property 'parentNode' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492485/

有关JavaScript 错误 : Cannot read property 'parentNode' of null的更多相关文章

  1. ruby-on-rails - rails : "missing partial" when calling 'render' in RSpec test - 2

    我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou

  2. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  3. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  4. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  5. ruby - 在 jRuby 中使用 'fork' 生成进程的替代方案? - 2

    在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',

  6. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  7. ruby - 无法让 RSpec 工作—— 'require' : cannot load such file - 2

    我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳

  8. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  9. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  10. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

随机推荐