Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как обернуть страницу во фрейм если она не хочет? (https://javascript.ru/forum/dom-window/40483-kak-obernut-stranicu-vo-frejjm-esli-ona-ne-khochet.html)

Kvark 07.08.2013 13:05

как обернуть страницу во фрейм если она не хочет?
 
Приветсвую, подскажите решение для такой проблемки пожалуйста:

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

Думаю что нужно как то дождаться пока страница будет сформирована (загрузиться) и тогда ее запихнуть во фрейм, и добавить футер. Подскажите как это можно сделать?

Грузить сразу во фрейм не получаеться так как она проверяет свое положение и выскакивает из фрейма.

skrudjmakdak 07.08.2013 13:42

ну да.. мы все поняли.. пример показывайте

Kvark 07.08.2013 13:53

сложно показать как на самом деле но попытаюсь, моя страница такая:
<body bgcolor="#E6E6FA">
		<div id="WrapperHeader">
			<br />
			Header
			<br />
		</div>
		<div class="WrapperEmbedHolder">
			<iframe id="EmbedContent" src="ess.do" width="100%" height="500px" hspace="0" marginwidth="0" align="center" frameborder="0">
				Sorry but your browser can't display IFRAMEs
			</iframe>
		</div>
		<div id="WrapperFooter">
			<br />
			Footer
			<br />
		</div>
	</body>

сервлет сгенерирует страницу на лету с названием "ess.do" в которой присутсвует такая конструкция:
<script type="text/javascript">
	if (top.location != location) 
	{
		top.location.href = document.location.href ;
	}
</script>

если ее закоментировать она не грузиться вообще, поэтому я подумал что можно всесто этого скрипта добавить код который после ее загрузки сунет все во фрейм - но незнаю как это сделать

skrudjmakdak 07.08.2013 14:03

что то мне сложно всю эту картину представить... т.е. вы хотите подвал "подгрузить" через фрейм что ли?? а аяксом подгрузить нельзя?

mta88 07.08.2013 14:14

Цитата:

напрямую не получаеться вклиниться так как используються серверлеты с хмл и скрипт генерацией на лету для ее создания и не могу изменить этот процес
то есть не дают доступ к серверу?
или просто не разбираетесь в java-технологиях?

Deff 07.08.2013 14:24

Добавьте к ссылке соль, но чтобы сервер не реагировал(не учитывал) на нёё на данной странице
<script type="text/javascript">
	if (top.location != location) 
	{
		top.location.href = document.location.href+'?top' ;
	}
</script>

Kvark 07.08.2013 14:51

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

Само приложение формирует страницу как то так (привожу не полностью чтобы не захламлять, но надеюсь будет понятно суть:
<%@ include file="jspheader.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://openview.hp.com/xmlns/cwc/web/fw" prefix="cwc" %>
<jsp:setProperty name="framework" property="requestParams" value="<%= request.getParameterMap() %>" />

<html decorator="blank">
  <head>
  
    <title><%=appLabels.getString("App.Title")%></title>
    <link rel="shortcut icon" href="<%=FrameworkBean.getAppIcon(request)%>" />
    <link rel="stylesheet" type="text/css" href="<%=contextPath%>/js/extjs/resources/css/ext-all-notheme.css" ></link>
	...
    <script type="text/javascript" src="<%=contextPath%>/js/ux/mif/miframe.js"></script>

    <script type="text/javascript">
      Ext.namespace('cwc.ux');
      var logoutMessage = "";
      Ext.apply(cwc, {
        pageReloaded: true,
        frameworkContext: '<%=contextPath %>',
        theme: '<%=framework.getTheme()%>',
        ...
      });
    </script>

  <c:if test="<%= (application.getResource(FrameworkBean.appHeaderExtFile) != null) %>">
    <%-- Extension point for adding content to the head --%>
    <jsp:include page="<%=FrameworkBean.appHeaderExtFile%>" />
  </c:if>

</head>
	<body onload="cwc.getFrameworkWindow()">
		<%@ include file="fw/cwc_fwHeader.jspf" %>
		<c:if test="<%= (application.getResource(FrameworkBean.appBodyExtFile) != null) %>">
			<%-- Extension point for adding content to body --%>
			<jsp:include page="<%=FrameworkBean.appBodyExtFile%>" />
		</c:if>
	</body>
</html>

skrudjmakdak 07.08.2013 14:56

вот, например, вы подключайте модули: <jsp:include page="<%=FrameworkBean.appBodyExtFile%>" />
может в этом модуле еще есть модуль.. так нельзя прям там и прописать то что вам нужно?

Kvark 07.08.2013 15:06

неразбираюсь я настолько в серверных модулях :(

skrudjmakdak 07.08.2013 15:10

ну тогда я вам не помогу( учите яву

Kvark 07.08.2013 15:14

факт! :) вопрос то был как загрузившиюся страницу поместить во фрейм, не?

Deff 07.08.2013 15:18

Kvark,
1. Проверьте тупо
контент по ссылке c добавкой ? и без добавки вопросительного знака в конце - совпадает- если совпадает - то ставьте
скрипт такой
<script type="text/javascript">
	if (top.location != location) 
	{
		top.location.href = document.location.href+'?' ;
	}
</script>

skrudjmakdak 07.08.2013 15:18

может наоборот? поместить фрем в загрузившуюся страницу?? вот это можно

Deff 07.08.2013 15:21

skrudjmakdak,
Суть в том, что фрейм не грузиться при совпадении ссылок на главной и
во фрейме

skrudjmakdak 07.08.2013 15:30

Deff, я уже сколь пытаюсь понять, что нужно.. и честно говоря у меня с трудом получается.

ну разумеется не будет грузится дабы стоит условие..

Kvark 07.08.2013 15:37

Deff - идею понял но не срабатывает, выпрыгивает все равно из фрейма.
skrudjmakdak - cуть не в условии - я могу его закоментировать, но тогда ничего не работает, тут что то как Deff говорит похожее...
Мне именно что нужно обратное действие - как фрейм запихнуть это я знаю, а реверс неполучаеться.
поясню:
Вот есть страница, которую грузит юзер, мне нужно что бы она оказалась во фрейме после загрузки, тоесть в document появился бы фрейм и все что было до этого попало бы в него и самое главное продолжило работать :) согласен что необычно, но подругому не придумаю как себе выделить место на странице которая непонятно как (для меня) создаеться... :)

Deff 07.08.2013 15:39

Вариант 1. Добавить к ccылке в скрипте "?"
2. ставить сразу
Цитата:

<iframe id="EmbedContent" src="Ссылка с главной+'?'" width="100%" name="frame0" height="500px" hspace="0" marginwidth="0" align="center" frameborder="0">
3. B Задать ссылку с главной во внутрь фрейма, а не на главную, прописываеv пустому фрейму имя и
Цитата:

<iframe src="" id="EmbedContent" width="100%" name="frame0" height="500px" hspace="0" marginwidth="0" align="center" frameborder="0">

скрипт на главной
<script type="text/javascript">
var first = true;
function setLnk(frame){
if(first ){first = false;frame0.location= "http://javascript.ru/forum/dom-window/40483-kak-obernut-stranicu-vo-frejjm-esli-ona-ne-khochet-2.html" }//Тут может быть любая}
}

</script>
<iframe src="" height=340 width="100%" name="frame0" onload="setLnk(this)"></iframe>

скрипт ставим до фрейма

Kvark 07.08.2013 15:42

пробую

skrudjmakdak 07.08.2013 15:44

Цитата:

Сообщение от Kvark (Сообщение 266328)
Вот есть страница, которую грузит юзер, мне нужно что бы она оказалась во фрейме после загрузки, тоесть в document появился бы фрейм и все что было до этого попало бы в него и самое главное продолжило работать :) согласен что необычно, но подругому не придумаю как себе выделить место на странице которая непонятно как (для меня) создаеться... :)

да вы знаете толк в извращении)))

skrudjmakdak 07.08.2013 15:46

Цитата:

Сообщение от Kvark (Сообщение 266328)
на странице которая непонятно как (для меня) создаеться... :)

порыться в jsp'шках))


Часовой пояс GMT +3, время: 02:31.