mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-30 00:29:58 +09:00
위젯 정리시 document.write등 페이지가 이동해버리는 script에 대한 처리 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3384 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
2fcf136b1a
commit
01170f020b
2 changed files with 46 additions and 19 deletions
|
|
@ -4,6 +4,24 @@
|
||||||
* @brief 위젯 관리용 자바스크립트
|
* @brief 위젯 관리용 자바스크립트
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
/* document.write(ln)의 경우 ajax로 처리시 가로채기 위한 함수 */
|
||||||
|
document.write = document.writeln = function(str){
|
||||||
|
if ( str.match(/^<\//) ) return;
|
||||||
|
if ( !window.opera ) str = str.replace(/&(?![#a-z0-9]+;)/g, "&");
|
||||||
|
str = str.replace(/(<[a-z]+)/g, "$1 xmlns='http://www.w3.org/1999/xhtml'");
|
||||||
|
var div = null;
|
||||||
|
if(document.createElementNS) div = document.createElementNS("http://www.w3.org/1999/xhtml","div");
|
||||||
|
else div = xCreateElement('div');
|
||||||
|
xInnerHtml(div, str);
|
||||||
|
var pos;
|
||||||
|
pos = document.getElementsByTagName("*");
|
||||||
|
pos = pos[pos.length - 1];
|
||||||
|
var nodes = div.childNodes;
|
||||||
|
while ( nodes.length ) {
|
||||||
|
pos.parentNode.appendChild( nodes[0] );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/* DOM 속성을 구하기 위한 몇가지 함수들.. */
|
/* DOM 속성을 구하기 위한 몇가지 함수들.. */
|
||||||
// style의 값을 구하는게 IE랑 그외가 다름.
|
// style의 값을 구하는게 IE랑 그외가 다름.
|
||||||
function getStyle(obj) {
|
function getStyle(obj) {
|
||||||
|
|
@ -180,19 +198,8 @@ function doSyncPageContent() {
|
||||||
// 부모창에 위젯을 추가
|
// 부모창에 위젯을 추가
|
||||||
function completeAddContent(ret_obj) {
|
function completeAddContent(ret_obj) {
|
||||||
var tpl = ret_obj["tpl"];
|
var tpl = ret_obj["tpl"];
|
||||||
|
opener.doAddWidgetCode(tpl);
|
||||||
selected_node = opener.selectedWidget;
|
|
||||||
|
|
||||||
if(selected_node && selected_node.getAttribute("widget")) {
|
|
||||||
selected_node = replaceOuterHTML(selected_node, tpl);
|
|
||||||
} else {
|
|
||||||
var obj = opener.zonePageObj;
|
|
||||||
xInnerHtml(obj, xInnerHtml(obj)+tpl);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(opener.doFitBorderSize) opener.doFitBorderSize();
|
|
||||||
window.close();
|
window.close();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -244,6 +251,31 @@ function doFitBorderSize() {
|
||||||
|
|
||||||
var selectedWidget = null;
|
var selectedWidget = null;
|
||||||
|
|
||||||
|
// 위젯 추가
|
||||||
|
function doAddWidgetCode(widget_code) {
|
||||||
|
var dummy = xCreateElement('div');
|
||||||
|
xInnerHtml(dummy, widget_code);
|
||||||
|
|
||||||
|
var nodes = dummy.childNodes;
|
||||||
|
|
||||||
|
var zoneObj = xGetElementById('zonePageContent');
|
||||||
|
|
||||||
|
if(selectedWidget && selectedWidget.getAttribute("widget")) {
|
||||||
|
while ( nodes.length ) {
|
||||||
|
if(nodes[0].className == 'widgetClass') zoneObj.parentNode.insertBefore(nodes[0], zoneObj);
|
||||||
|
else selectedWidget.parentNode.insertBefore(nodes[0], selectedWidget);
|
||||||
|
}
|
||||||
|
selectedWidget.parentNode.removeChild(selectedWidget);
|
||||||
|
} else {
|
||||||
|
while ( nodes.length ) {
|
||||||
|
if(nodes[0].className == 'widgetClass') zoneObj.parentNode.insertBefore(nodes[0], zoneObj);
|
||||||
|
else zoneObj.appendChild(nodes[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
doFitBorderSize();
|
||||||
|
}
|
||||||
|
|
||||||
// 클릭 이벤트시 위젯의 수정/제거/이벤트 무효화 처리
|
// 클릭 이벤트시 위젯의 수정/제거/이벤트 무효화 처리
|
||||||
function doCheckWidget(e) {
|
function doCheckWidget(e) {
|
||||||
var evt = new xEvent(e); if(!evt.target) return;
|
var evt = new xEvent(e); if(!evt.target) return;
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,8 @@ function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(selected_node && selected_node.getAttribute("widget")) {
|
opener.doAddWidgetCode(widget_code);
|
||||||
selected_node = replaceOuterHTML(selected_node, widget_code);
|
|
||||||
if(opener.doFitBorderSize) opener.doFitBorderSize();
|
|
||||||
} else {
|
|
||||||
var obj = opener.xGetElementById('zonePageContent');
|
|
||||||
xInnerHtml(obj, xInnerHtml(obj)+widget_code);
|
|
||||||
}
|
|
||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue