gpt4 book ai didi

c# - Microsoft JScript 运行时错误 : Unable to get value of the property 'removeChild' : object is null or undefined

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:48 26 4
gpt4 key购买 nike

我正在开发一个 asp.net mvc 3 应用程序。标题告诉我有什么问题。我将描述我是如何得到这个错误的。

我正在使用 JavaScript 从我的 razor View 上传图像。脚本不是那么长,所以我会把它贴在这里:

function fileUpload(form, action_url, div_id) {
// Create the iframe...
var iframe = document.createElement("iframe");
iframe.setAttribute("id", "upload_iframe");
iframe.setAttribute("name", "upload_iframe");
iframe.setAttribute("width", "0");
iframe.setAttribute("height", "0");
iframe.setAttribute("border", "0");
iframe.setAttribute("style", "width: 0; height: 0; border: none;");

// Add to document...
form.parentNode.appendChild(iframe);
window.frames['upload_iframe'].name = "upload_iframe";

iframeId = document.getElementById("upload_iframe");

// Add event...
var eventHandler = function () {

if (iframeId.detachEvent) iframeId.detachEvent("onload", eventHandler);
else iframeId.removeEventListener("load", eventHandler, false);

// Message from server...
if (iframeId.contentDocument) {
content = iframeId.contentDocument.body.innerHTML;
} else if (iframeId.contentWindow) {
content = iframeId.contentWindow.document.body.innerHTML;
} else if (iframeId.document) {
content = iframeId.document.body.innerHTML;
}

document.getElementById(div_id).innerHTML = content;

// Del the iframe...
setTimeout('iframeId.parentNode.removeChild(iframeId)', 250);
}

if (iframeId.addEventListener) iframeId.addEventListener("load", eventHandler, true);
if (iframeId.attachEvent) iframeId.attachEvent("onload", eventHandler);

// Set properties of form...
form.setAttribute("target", "upload_iframe");
form.setAttribute("action", action_url);
form.setAttribute("method", "post");
form.setAttribute("enctype", "multipart/form-data");
form.setAttribute("encoding", "multipart/form-data");

// Submit the form...
form.submit();

document.getElementById(div_id).innerHTML = "Uploading...";
form.setAttribute("action", '/forms/displayform');
}

通过使用这个脚本,我在我的 Controller 中获取了我的业务逻辑图像,所以我不确定它是否真的是导致这个的脚本,但我在调试时找不到其他原因。因此,当 Controller 完成其工作时,我在 visual studio 2010 中打开了一个名为 Script block[dynamic] 的新选项卡,其中包含以下代码:

function anonymous()
{
iframeId.parentNode.removeChild(iframeId)
}

这实际上是我的 JavaScript 的一部分:

    // Del the iframe...
setTimeout('iframeId.parentNode.removeChild(iframeId)', 250);

我对 JS 有非常基本的了解。我使用这段代码,但我不明白其中的某些部分。在这里-评论和代码本身有点明显,但是如果我对此发表评论并尝试上传图像,我不会收到错误消息,这是非常诱人的事情,但我认为代码很可能是好的,出现此错误的原因在其他地方,所以我在此处发帖以获取有关可能导致此错误的原因以及如何修复的任何帮助?

附言

这是我用来上传图片的表格:

@using (Html.BeginForm("Upload", "Forms", FormMethod.Post))
{
<input name=@Model[0].DocumentId type="hidden" />

<input type="file" name="datafile" id="file" onchange="readURL(this);" />
<input type="button" name="Button" value="Upload Image" id="UploadButton" onclick="fileUpload(this.form,'/forms/upload','uploadImg'); return false;"/>
<div id="uploadImg" style="display: inline-block;">
<img id="blah" src="#" alt="your image" style="display:none;"/>
</div>
}

最佳答案

这是setTimeout的语法

setTimeout(function(),milliseconds);

所以,你应该这样做

setTimeout(function(){
iframeId.parentNode.removeChild(iframeId);
}, 250);

关于c# - Microsoft JScript 运行时错误 : Unable to get value of the property 'removeChild' : object is null or undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16850765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com