Skip to main content

Looping through IFrames using Javascript (ie. js)

I'll just paste some code here. It should be self explainatory...



/******************************************************************************************
Requirements:
1. <body onLoad="wt_ad_impression()">
2. <div id="wt_call"></div> somewhere in body
3. <input type="hidden" id="wt_name" name="wt_name" value="wt.AD" /> at Xigla Edit Banner
4. <iframe></iframe> not <iframe /> for FireFox in Ad Zone Grouping
*******************************************************************************************/

var intervalId = 0;
var wt_iframes = null;
var iframeCount = 0;
var iframeIterator = 0;

function wt_ad_impression()
{
alert("called");
wt_iframes = document.getElementsByTagName("iframe");
iframeCount = wt_iframes.length;
intervalId = setInterval(wt_collect, 200);
}

function wt_collect()
{
alert("in wt_collect");
alert("iframeCount="+iframeCount);
alert("iframeIterator="+iframeIterator);
if(iframeIterator < iframeCount)
{
alert("going");
var wt_iframe = wt_iframes[iframeIterator].contentWindow || wt_iframes[iframeIterator].contentDocument;
if (wt_iframe.document)
{
alert("here");
wt_iframe = wt_iframe.document;
var wt_name = wt_iframe.getElementById("wt_name");
if(wt_name)
{
var bugStr = "<IMG border=\"0\" name=\"DCSIMG\" width=\"1\" height=\"1\" SRC=\"http://statse.webtrendslive.com/dcsa8fvfl10000oi64eu0wzzm_4g7c/dcs.gif?dcsuri=" + window.location + "&dcsdat=" + Math.round(10000000000000*Math.random()) + "&WT.ad=" + wt_name.value + "\" />"
alert("value="+bugStr);
var imgElement = document.createElement("img");
imgElement.border = "0";
imgElement.name = "DCSIMG";
imgElement.width = "1";
imgElement.height = "1";
imgElement.src = "http://statse.webtrendslive.com/dcsa8fvfl10000oi64eu0wzzm_4g7c/dcs.gif?dcsuri="
+ window.location + "&dcsdat=" + Math.round(10000000000000*Math.random()) + "&WT.ad="
+ wt_name.value;

var wt_call_div = document.getElementById("wt_call");
wt_call_div.appendChild(imgElement);

}
}
alert("incrementing");
iframeIterator = iframeIterator + 1;
alert("iframeIterator="+iframeIterator);

}
else
{
clearInterval(intervalId);
}
}


To access frames you can also use:

var len = windows.frames.length;
for(var i = 0; i < len; i++)
{
var frame = windows.frames[i];
}


The frames collection can use integers as indexes or a string if the frame has a name ie <iframe name="xyz">.

Comments

Popular posts from this blog

Parsing XML Documents in the CMS: 2 Methods

To start off with do this: Dim txt Dim fieldStart, fieldEnd Dim xml Dim fields Dim ltxt Dim key Dim value txt = trim(content.item("_cmsEmailBody")) ltxt = lcase(txt) fieldStart = inStr(ltxt, "<root>") fieldEnd = inStr(ltxt, "</root>") if fieldStart >= fieldEnd then content.add "_cmsError", "Invalid email format. No XML data detected." exit Sub end if ' skip the end /root fieldEnd = fieldEnd + 6 set xml = system.createXML() if not xml.loadXML(mid(txt, fieldStart, fieldEnd)) then content.add "_cmsError", "Invalid XML format." exit Sub end if Now there are two ways to parse it. Method 1: set fields = xml.selectSingleNodeAsContent("root") Method 2: set fields = xml.selectSingleNodeAsDic("root") Check to make sure we have the root node: if not isObject(fields) then content.add "_cmsError", "Invalid xml format. Missing root /root node." exit Sub end if If Method 1 ...

Passing values from Javascript to Asp.Net

The trick to passing data from Javascript and Asp.Net is to use hidden inputs in the html. The hidden inputs should have the runat="server" attribute. For example: <input type="hidden" runat="server" id="hiddenfield" value="" /> Then in the Javascript, whatever value you are trying to pull from Asp.Net, set the hidden field using: document.getElementById("hiddenfield").value = "whatever value you want to set" And in the Asp.net form, you can just access the hiddenfield by using its id. string x = hiddenfield.value.text Thats all there is to it. You might need to check the syntax of it first as this is just all from my head.

Laravel 5.1 - Step by step instructions for setting up default authentication

Create a Database in MySQL 1. Login to MySQL 2. Run the command to create a database for your application CREATE DATABASE database_name; 3. You'll probably also need to create a user to access the database CREATE USER 'username'@'localhost' IDENTIFIED BY 'some_password'; 4. Then you'll need to grant this user access to the database you created GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' ;  Configure Laravel Database Connection The DB configuration file is located at /config/database.php. You'll need to edit the following highlighted sections in this file with the values needed to connect to the database you've created from above. Configure Environment If you installed Laravel through Composer, in the root of the Laravel install there is a hidden .env file which is automatically renamed from .env.example . If you didn't user Composer, you'll need to rename this file yourself. ...