Хорошо, я понял это, когда писал в iframe, Internet Explorer более требователен к синтаксису, чем firefox, поэтому мне пришлось использовать некоторые escape-коды, чтобы заставить его работать. Также я изменил код, так что теперь он принимает URL-адрес RSS и добавляет его по нажатию кнопки. пожалуйста, смотрите код ниже.
JavaScript
function AddIframe(url)
{
try{
var SelectedFeed = url;
var semiUrl = "src=" + replaceSpecial(SelectedFeed); + "&chan=n&num=20&desc=1&date=y&targ=y";
var source = 'src=\"http://itde.vccs.edu/rss2js/feed2js.php?' + semiUrl + '\"';
var htmlWriter = "<html><head><title>testIframe</title><link rel='stylesheet' href='gadget.css' /></head><body><div>" + '<scr'+'ipt type=\"text/javascript\" ' + source +'></scr'+'ipt>' + "</div></body></html>"
ifrm = document.createElement("iframe");
ifrm.setAttribute("name", "iFrame1");
ifrm.setAttribute("id","iFrame1");
document.getElementById("div1").appendChild(ifrm);
ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm. contentDocument;
ifrm.document.open();
ifrm.document.write(htmlWriter);
ifrm.document.close();
}
catch(e)
{
alert(e);
}
}
function replaceSpecial(Text)
{
try{
var r1 = Text;
r1 = r1.replace(/ /g,"%20");
r1 = r1.replace(/@/g,"%40");
r1 = r1.replace(/#/g,"%23");
r1 = r1.replace(/\$/g,"%24");
r1 = r1.replace(/\%/g,"%25");
r1 = r1.replace(/&/g,"%26");
r1 = r1.replace(/=/g,"%3D");
r1 = r1.replace(/\+/g,"%2B");
r1 = r1.replace(/:/g,"%3A");
r1 = r1.replace(/;/g,"%3B");
r1 = r1.replace(/"/g,"%22");
r1 = r1.replace(/\\/g,"%5C");
r1 = r1.replace(/\//g,"%2F");
r1 = r1.replace(/\?/g,"%3F");
r1 = r1.replace(/</g,"%3C");
r1 = r1.replace(/>/g,"%3E");
r1 = r1.replace(/\[/g,"%5B");
r1 = r1.replace(/]/g,"%5D");
r1 = r1.replace(/{/g,"%7B");
r1 = r1.replace(/}/g,"%7D");
r1 = r1.replace(/`/g,"%60");
Text = r1;
return Text;
}
catch(e)
{
alert(e);
}
}
HTML
<input type="button" value="Add Sports" onclick="AddIframe('http://www.nfl.com/rss/rsslanding?searchString=home');" />
<input type="button" value="Add News" onclick="AddIframe('http://msn.com/rss/news.aspx');" />