Javascript 无法在“中启动函数”;document.write()&引用;

Javascript 无法在“中启动函数”;document.write()&引用;,javascript,image,web,document.write,Javascript,Image,Web,Document.write,我是JavaScript新手。 我已经使用过Java和C#(还有一点C++) 到目前为止 我正在使用JavaScript将图片从目录加载到数组中。之后,我想把这些图片放在我的页面上 这已经起作用了 下一步是添加全屏功能,以全屏分辨率加载图片 var myfiles; var pfad = "./bilder/" //directory of the images var index = 0; myfiles = new Array(); //String array with the

我是JavaScript新手。 我已经使用过Java和C#(还有一点C++)

到目前为止

我正在使用JavaScript将图片从目录加载到数组中。之后,我想把这些图片放在我的页面上

这已经起作用了

下一步是添加全屏功能,以全屏分辨率加载图片

var myfiles; 
var pfad = "./bilder/"    //directory of the images
var index = 0;

myfiles = new Array(); //String array with the names of the pictures
myfiles[0] = "01.png"; 
myfiles[1] = "01.png"; //usw. 
myfiles[2] = "03.png";
myfiles[3] = "02.png";


function fullScreen(bild) {
    document.write('<img src="'+ pfad + bild + '" border="0" width="100%">'); 
    alert (bild);
}

function start() {
    for(var i=0; i < myfiles.length; i++) { 
        pics[i].src = pfad + myfiles[i];
        string = myfiles[i];

        document.write('<img  onclick="fullScreen(string);" src="'+ pfad + myfiles[i] + '"     border="0" height="150px" >'); 
    } 
}

当循环已经完成时,它仅在单击时计算
string

您需要直接传递它:

    for(var i=0; i < myfiles.length; i++) { 

    pics[i].src = pfad + myfiles[i];
    string = myfiles[i];

    document.write('<img  onclick="fullScreen(\''+string+'\');" src="'+ pfad + myfiles[i] + '"     border="0" height="150px" >'); 

    } 
for(var i=0;i

JS


加载页面后调用
document.write()
,这是自找麻烦。看。@FrédéricHamidi他在dom就绪/窗口加载后没有这样做。只要他在dom准备好之前使用它,就可以了。@Royi,你是什么意思<代码>全屏()
在文档加载后在单击时被调用。@RoyiNamir
start()
将正常执行,但它写入文档的单击处理程序也使用
document.write()
…@Teemu没有注意到这一点。如果是这样,请忽略我的评论。当然不用了。@James不,不会用的。然后将对其进行计算。@Teemu-true,但这是另一个问题。@scimonester-stringify实际上会导致它失败,因为它会将字符串用双引号括起来,从而导致
onclick=“fullScreen(''01.png');“
@James那么您认为如何修复它呢?可能是转义?需要转义文件名周围的单引号,我的第一条评论也错了(要删除它)
onclick=“全屏(\''+string+'\');”
works谢谢。我不认识事件处理程序。我要试试看!
    for(var i=0; i < myfiles.length; i++) { 

    pics[i].src = pfad + myfiles[i];
    string = myfiles[i];

    document.write('<img  onclick="fullScreen(\''+string+'\');" src="'+ pfad + myfiles[i] + '"     border="0" height="150px" >'); 

    } 
var myfiles = []; 
var pfad = "http://placehold.it/350x250/&text=";
var index = 0;

myfiles[0] = "Image 0"; 
myfiles[1] = "Image 1";
myfiles[2] = "Image 2";
myfiles[3] = "Image 3";

function fullscreen(){
  if(this.className == 'fullscreen') this.className = '';
  else this.className = 'fullscreen';
}

function createImage(src){ 
  var img = document.createElement('img');
  img.src = pfad + src;
  img.addEventListener('click', fullscreen);
  document.body.appendChild(img);
  return img;
}

function start(){
  for(var i=0; i < myfiles.length; i++) { 
    var img = createImage(myfiles[i]);
  } 
}
start();
html, body, .fullscreen {
  height: 100%;
}