스크립트를 통한 Form, IFrame, Hidden Field생성
/**
* @type : function
* @access : public
* @desc : 스크립트를 통한 지정된 이름의 IFRAME생성(존재하면 해당 IFRAME을 반환하고, 없으면 IFRAME을 새로 생성)
* @param : name IFRAME 이름
*/
function cfCreateIFrame(name){
if (!name) name = "";
var ifr = document.getElementById(name);
if (!ifr) {
// 존재하지 않으면 새로 생성
ifr = document.createElement('<IFRAME name="' + name + '"frameborder="no" scrolling="no" width="0"height="0"></IFRAME>');
// Document에 추가
document.appendChild(ifr);
}
return ifr;
}
javascript상에서 접근하려면 iframe의 readyState가 complete가 되어야 정상적인 접근이 가능
ifr.contentWindow.document.getElementById('cookie').innerText
이런식으로 iframe에 로딩된 문서에 접근가능
/**
* @type : function
* @access : public
* @desc : 지정된 이름의 폼이 있으면 해당폼의 Elements들을 제거한 후 반환하고, 없으면 폼을 새로 생성해서 반환
* @param : name Form이름
*/
function cfCreateForm(name){
if (!name) name = "";
var frm = document.getElementById(name);
if (!frm) {
frm = document.createElement('<FORM name="' + name + '"></FORM>');
document.appendChild(frm);
}
for (var i = frm.elements.length - 1; i >= 0; i--) {
frm.removeChild(frm.elements[i]);
}
return frm;
}
/**
* @type : function
* @access : public
* @desc : 지정된 폼에 Hidden Elements를 추가
* @param : frm Form Object
* @param : name Element명
* @param : value Value
* @param : multi 1인경우 같은이름으로 여러개 추가
*/
function cfAddHidden(frm, name, value, multi)
{
if (!frm) return;
if (!name || name == "") return;
var obj = frm.elements[name];
if (!(obj && obj.type == "hidden") || multi == 1) {
obj = frm.document.createElement('<INPUT type="hidden" name="' + name + '">');
frm.appendChild(obj);
}
if (value) obj.value = value;
return obj;
}