Обновление iframe 'src' при нажатии кнопки (кнопка «Файл» формы) - PullRequest
0 голосов
/ 31 марта 2012

Сначала позвольте мне сказать, что я не знаю, возможно ли это так, как я это делаю, я прихожу сюда к профессионалам за помощью.

Как указывает субъект, я пытаюсь добиться того, чтобыпри нажатии кнопки содержимое, которое я хочу загрузить, появляется в iframe ....

Сначала я сделал следующее: HTML-код iframe такой:

<iframe id="my-frame" src=""></iframe>

и простойКод формы таков:

<form action="#" method="post" target="my-frame">
<input type="file" name="localFile"  id="localFile">
 <input type="submit" id="Sbtn" name="Sbtn" value="submit">
</form>

Какой должен загрузить то, что я выбрал внутри фрейма, на который я нацелился, под названием «мой кадр», но вместо этого, когда я нажимаюкнопка, он загружает открытую в данный момент страницу, и я в итоге получаю один из тех эффектов зеркального отображения funhouse, которые вы видите одно и то же снова и снова внутри себя ....... или вообще ничего не загружается, раздел iframeостается белым ....

Так что я сдался и попробовал немного Js и снова, не уверенный, если это способ пойти по этому пути, но ... ну, я должен попробовать что-то.Таким образом, я вынул «target =» my-frame »из его части формы и вставил в него.

var myFrame = document.getElementById("my-frame");
var btn2 = document.getElementById("Sbtn");
var field2 = document.getElementById("localFile");

btn2.onclick = function(){
        if(field2.value ==""){
            //enter error message or something.
        } else {
          myFrame.src = field2.value;
          return false;

        }
}

Тогда, когда я делаю это, я получаю ошибки типа« страница не можетбыть найденным "и т.д. ... не важно, что я делаю, страница не может быть найдена.

точная ошибка, которую я получаю, такова:

Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.

, к которой я не понимаю, так как я перехожу кфайл (независимо от того, что это) с помощью мастера, который появляется.

Теперь для дальнейшего устранения неполадок, когда я делаю обычную ссылку ... например (псевдокод)

<a href =" path to local file here " target="the iframe id"></a>

затемон загружает его просто отлично ...

так что я потерян.

Есть идеи о том, что я делаю не так или ... что-то не хватает?

Любые советы,ссылки, любая помощь любого рода, я с радостью и смиренно принимаю. Спасибо заранее.

Somdow http://somdowprod.net/

1 Ответ

2 голосов
/ 31 марта 2012

Насколько я понимаю, вам нужно:

  • Выбрать файл с типом ввода = файл
  • Нажмите кнопку отправки
  • Выбранный файл должен появиться внутриiframe (что вы ожидаете)

AFAIK, это может быть сделано только с IE.Причины настройки безопасности для Chrome и FF разные (выше).Вы можете попробовать команду оповещения, чтобы увидеть, что на самом деле происходит с IE, Chrome и Firefox.Просто измените ваш код примерно так:

...
} else {
  alert(field2.value); ///--- add this line
  myFrame.src = field2.value;
  return false;
}
...

Откройте ваш файл во всех 3 основных браузерах (IE, Chrome, FF) и просмотрите результат для каждого, когда вы выберете файл и соответственно нажмете кнопку отправки.


Как я уже проверял, результатом для IE был полный путь на жестком диске к файлу:

C:\Documents and Settings\DUNGPRO\My Documents\A WALLPAPER\abc.jpg

В то время как Chrome заменил путь на поддельный путь:

C:\fakepath\abc.jpg

И Firefox просто дает вам только имя файла:

abc.jpg

Да, только поддельный путь или имя файла делают его отображаемым 404-Файл не найден.Только IE дает вам ожидаемый путь, и поэтому ваш код работает правильно с IE.

Надеюсь, вы не чувствуете, что это не так уж и плохо, хотя почти эти настройки из Chrome и FF являются настройками по умолчанию и их невозможно изменить в течение вашегокод.Просто подумайте, что они для безопасности пользователя и найдите другой подход.Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...