Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
健壮的Javascript代码_Javascript - Fatal编程技术网

健壮的Javascript代码

健壮的Javascript代码,javascript,Javascript,我已经完成了一个脚本,它为特定的url创建一个模式,然后加载图像内容。我想知道是否有办法使这段代码更加健壮,并且即使所有内容都存在,页面也会持续加载 非常感谢您的帮助 function displayContent() { document.getElementById("findCar").onsubmit = function () { var registration = document.getElementById("regPlate").value,

我已经完成了一个脚本,它为特定的url创建一个模式,然后加载图像内容。我想知道是否有办法使这段代码更加健壮,并且即使所有内容都存在,页面也会持续加载

非常感谢您的帮助

function displayContent() {
    document.getElementById("findCar").onsubmit = function () {
        var registration = document.getElementById("regPlate").value,
            reference = document.getElementById("stockRef").value;
        var regArray = registration.split(''),
            refArray = reference.split(''),
            referenceNinth = refArray[10];
        reverseReg = regArray.reverse();
        var obfuscated = new Array();
        var obf_index = 0;
        for (i = 0; i <= 6; i++) {
            obfuscated[obf_index] = refArray[i];
            obf_index++;
            obfuscated[obf_index] = reverseReg[i];
            obf_index++;
        }
        obfuscated.push(referenceNinth);
        obfuscatedString = obfuscated.join("");
        var camera = new Array();
        var cameraSize = "350";
        var cam_index = 0;
        for (i = 0; i <= 1; i++) {
            if (i > 0) cameraSize = "800";
            camera[cam_index++] = cameraSize + "/f";
            camera[cam_index++] = cameraSize + "/i";
            camera[cam_index++] = cameraSize + "/6";
            camera[cam_index++] = cameraSize + "/5";
            camera[cam_index++] = cameraSize + "/4";
            camera[cam_index++] = cameraSize + "/r";
        }
        for (i = 0; i <= 11; i++) {
            document.write("<img src='http://imagecache.arnoldclark.com/imageserver/" + obfuscatedString + "/" + camera[i] + "'/>");
        }

    };
}
函数displayContent(){
document.getElementById(“findCar”).onsubmit=function(){
var注册=document.getElementById(“regPlate”).value,
参考=document.getElementById(“stockRef”).值;
var regArray=注册。拆分(“”),
REFRARAY=参考分割(“”),
referenceInth=refArray[10];
reverseReg=regArray.reverse();
var obfuscated=新数组();
var obf_指数=0;

对于(i=0;iEDIT):要防止页面重新加载,您需要在onsubmit处理程序中防止默认表单提交。有关如何做到这一点,请参阅后面我的答案中的信息


在已加载的文档上调用
document.write()
时,它会清除上一个文档的内容并开始编写新文档,这可能会造成“连续加载”的印象如果这不是您想要的行为,那么您应该直接插入新的DOM节点,而不是使用
document.write()
,将图像内容动态添加到页面中

您可以通过替换以下内容来完成此操作:

    for (i = 0; i <= 11; i++) {
        document.write("<img src='http://imagecache.arnoldclark.com/imageserver/" + obfuscatedString + "/" + camera[i] + "'/>");
    }

for(i=0;我定义“更健壮”。@Zeta不,它被隐式调用(调用.close在10年前很重要:D)。此外,应该避免。在这种情况下,支持调用和追加新图像。
健壮性是指更易于维护、更易于阅读和添加更多内容。@BenjaminGruenbaum:
文档。open
被隐式调用,
文档。close
不会(至少不是在每个浏览器中(是的,我在看你,IE))。但是,我同意应尽可能避免使用
文档。打开/写入/关闭
。我尝试了您的示例,我可以看到它正在工作,但一旦所有图像加载,页面就会刷新。@user2197114-我建议的修改代码中没有任何内容是重新加载页面的,因此您一定有一些未向我们披露的内容是可以修改的。@user2197114使用它。我添加了一些可能导致页面重新加载到我的答案中的内容。@user2197114-我看到这是一个onsumbit事件处理程序。您可能会收到一个表单提交。您需要
e.preventDefault()
防止默认表单提交或
返回false
。有关更多详细信息,请参阅我的答案。非常感谢jfriend00,我现在可以正常工作并附加功能,不过是否有一个函数可以阻止用户多次加载同一功能?什么是“阻止用户多次加载同一功能”是什么意思?我不懂那句话。
    for (i = 0; i <= 11; i++) {
        var img = new Image();
        img.src = 'http://imagecache.arnoldclark.com/imageserver/" + obfuscatedString + "/" + camera[i] + "'
        document.body.appendChild(img);
    }