2013-03-04 3 views
0

Следующая программа может работать в chrome, но в firefox не работает, мне нужно обновить страницу, иначе страница будет пустой!Javascript location.replace и iframe

Пожарщик выпрыгнет из окна магазина, чтобы использовать iframe, не будет работать, есть способы обойти это?

спасибо всем!

var url = "/card/"+dl_path; 
SaveFrame.document.location.replace(url); 

<iframe id="SaveFrame" style="display: none"></iframe> 
+0

Что такое топка? – Christoph

+0

@Christoph Это * Firefox * – VisioN

+0

@VisioN хорошо, такая же опечатка дважды сделала его вариантом - это расширение браузера/хрома/что бы я еще не встретил;) – Christoph

ответ

1

Если вы используете JQuery, вы можете использовать что-то вроде $('#saveFrame').attr('src', url). Он должен работать для всех браузеров.

+0

Да, он может работать, спасибо вам большое! – user1933513

+0

Я не думаю, что это должен быть ответ на этот конкретный вопрос, так как это решение на основе jQuery, и OP попросил решение для JavaScript. В любом случае вопрос не помечен jQuery. Нет дополнительной разработки. – WoIIe

0

Адресация элемента через переменную, которая неявно создана в глобальной области действия, является проприетарным способом «Internet Explorer», который, скорее всего, не работает в других браузерах (хотя Chrome поддерживает это по причинам совместимости). Вы всегда должны обратиться к элементу с помощью метода отбора Дом либо через:

document.querySelector(id) 
// or 
document.getElementById(id) 

В вашем случае это будет:

document.getElementId('SaveFrame').contentDocument.location.replace(url); 
// or 
document.getElementId('SaveFrame').src= url; 
+0

Твой путь, просто можно работать только в IE, спасибо за помощь! – user1933513

1

попробовать

document.getElementById('SaveFrame').src="http://google.com/"; 
+0

Не могли бы вы немного помочь? – guerda

0

Это должно работать, и это быстрая загрузка для веб-сайта Это сработало для меня ...

onmouseover="window.open ('http://www.yourpage.com','YourTargetName'); this.onmouseover=null;" 


Код "this.onmouseover = null;" означает, что он должен делать это только один раз, когда он загружает и не повторяет атрибут во второй мыши, если вы хотите, чтобы он повторил атрибут второй мыши, а затем удалите «это».OnMouseOver = NULL;»из кода и сделать его похожим на это, чтобы загрузить каждый раз, когда курсор мыши находится над:

onmouseover="window.open ('http://www.yourpage.com','YourTargetName');" 


Пример:

<a href="#" onmouseover="window.open ('http://www.yourpage.com','YourTargetName');"> 
My Link</a> 



Или попробуйте это:

OnClick="window.open ('http://www.yourpage.com','YourTargetName');" 

ПРИМЕР:

<a href="#" OnClick="window.open ('http://www.yourpage.com','YourTargetName');"> 
My Link</a> 

или

<a href="javascript:window.open ('http://www.yourpage.com','YourTargetName');"> 
My Link</a> 

или

Если вы хотите использовать window.location.replace не обновлять историю при загрузке страницы или кадра, используйте ссылки, которые выглядят следующим образом:

<a href="#" onclick="YourTargetName.location.replace ('http://www.YourPage.com');"> 
The targeted Link</a> 

или

<a href="javascript:YourTargetName.location.replace ('http://www.YourPage.com');"> 
The targeted Link</a> 


информация: Для этого сценария все onclick, onmouseover, onmouseout, onload и href="javascript:" будет работать.



Примечание: Имейте в виду, что IFrame должен иметь имя = "YourTargetName", например, чтобы выглядеть примерно так:

<iframe id="SaveFrame" style="display: none" name="YourTargetName"></iframe> 


Информация: Разница между window.open и window.location.replace или YourTargetName.location.replace такова:
- window.open загрузок в истории браузера.
- window.location.replace или YourTargetName.location.replace не загружается история.

Смежные вопросы