Solved

How to hide the value of src in an HTML frame?

Posted on 2010-08-26
13
689 Views
Last Modified: 2012-05-10
I want to use this code:
 <FRAMESET border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0>
        <frame src="http://www.google.com" scrolling=auto frameborder="no" border=0 noresize>
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>

But i want to hide the value of src. How can i do this?

ASP.NET 1.1, Javascript, HTML
0
Comment
Question by:alexmac05
  • 6
  • 4
  • 2
  • +1
13 Comments
 
LVL 3

Expert Comment

by:shubham_gniiit
ID: 33534856
0
 

Author Comment

by:alexmac05
ID: 33535278
I am sorry. I don't know which part of the example above helps me? could you be more specific?

Thanks.
0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33535335
do you want to remove the attribute? use removeAttribute() for the same
http://www.java2s.com/Tutorial/JavaScript/0420__HTML-Tags/RemoveattributebycallingtheremoveAttributefunction.htm

Could you be a more specific about hiding the attribute please? from whom are you hiding the attribute?
If you want you can always not specify the src value in html code, and do it via javascript eg

 <FRAMESET border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0>
        <frame id="frame1" scrolling=auto frameborder="no" border=0 noresize>
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>

document.getElementById("frame1").setAttribute("src","http://www.google.com");
0
 

Author Comment

by:alexmac05
ID: 33535448
Hi Gurvinder372,

I am new to javascript, and your code isn't working. Am i missing something? did I place the document.getElementById("frame1")...etc... in the wrong location?

Thanks!

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <FRAMESET id="frame1" border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0>
        <frame scrolling=auto frameborder="no" border=0 noresize>
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>
      document.getElementById("frame1").setAttribute("src","http://www.google.com");
</head>


</html>
0
 
LVL 40

Expert Comment

by:gurvinder372
ID: 33535532
yes,

it should be


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 
</head>

    <FRAMESET id="frame1" border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0 onload="putSource()">
        <frame scrolling=auto frameborder="no" border=0 noresize>
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>

    <script>
     function putSource()
    {
      document.getElementById("frame1").setAttribute("src","http://www.google.com");
    }
    </script>

</html>
0
 

Author Comment

by:alexmac05
ID: 33535924
Thanks Gurvinder372. I think this is very close to a solution. for some reason it doesn't render the google.com page though.

I uploaded the code cut and paste from your post. Does it work for you? There must be something very small wrong with it. I tried to troubleshoot it myself but I wasn't able to make it have google.com appear.

thanks again

ps: rename it to test.html


test.html.txt
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 40

Expert Comment

by:gurvinder372
ID: 33536065
ohh...my bad...i think using javascript you cannot set a location of different domain of a frame, due to same origin policy.

try this
 Was this comment helpful?
Yes No
gurvinder372:
yes,

it should be


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 
</head>

    <FRAMESET id="frame1" border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0 onload="putSource()">
        <frame scrolling=auto frameborder="no" border=0 noresize>
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>

    <script>
     function putSource()
    {
      document.getElementById("frame1").innerhtml = document.getElementById("frame1").innerhtml  + "<frame scrolling=auto frameborder='no' border=0 noresize src='http://www.google.com' >";
    }
    </script>

</html>
0
 
LVL 40

Accepted Solution

by:
gurvinder372 earned 250 total points
ID: 33536078
sorry ignore last post

ohh...my bad...i think using javascript you cannot set a location of different domain of a frame, due to same origin policy.

try this

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
 
</head>

    <FRAMESET id="frame1" border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0 onload="putSource()">
        <frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
     </FRAMESET>

    <script>
     function putSource()
    {
      document.getElementById("frame1").innerhtml = document.getElementById("frame1").innerhtml  + "<frame scrolling=auto frameborder='no' border=0 noresize src='http://www.google.com' >";
    }
    </script>

</html>
0
 

Author Comment

by:alexmac05
ID: 33536137
That doesn't work either. does it work for you?
Thanks again for your help.
0
 
LVL 5

Assisted Solution

by:wmadrid1
wmadrid1 earned 250 total points
ID: 33539560
Hello,
The code of gurvinder372 could work if you try it with IFRAME tag

Trythe code below with a changes i made, i tested it over Firefox 3.6.8


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>

    <IFRAME id="frame1" border=1 width="100%" height="100%" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0></IFRAME>

    <script>
     function putSource()
    {
      document.getElementById("frame1").src='http://www.google.com';
    }
	putSource();
    </script>
</body>
</html>

Open in new window

0
 

Author Comment

by:alexmac05
ID: 33541954
yes, this works. Thank you!

The only thing left to do with this code is to hide the URL using javascript. Once that happens, then that is the solution.

Any idea how to do that? It would be ideal to call a ASP.NET function to provide the link. is that possible?

Basically, I want to set the src value in the code behind C# code or using javascript somehow, so that if the user does a view source they can't see the value.

document.getElementById("frame1").src='http://www.google.com';

Any ideas?

Thanks so much.
0
 

Author Comment

by:alexmac05
ID: 33544796
I am moving to a behind the scenes back end solution to this problem.

Thanks everyone for helping.
0
 
LVL 5

Expert Comment

by:wmadrid1
ID: 33546519
You can try it, using AJAX
Calling any script language (PHP, .NET, etc)
And in the response of script set the
document.getElementById("frame1").src='http://www.google.com';

Below is the code, to do the AJAX call

The call for it, could be like this
    <script>
     function putSource()
    {
      getAjax("URL of the .NET script ");
    }
        putSource();
    </script>

You can put the below code in a library and cerypt the javascript, to get the reading of it more dificult

<script>
var conn; 	//Conn object

function getAjax(page)
{
	conn = getXMLHttpRequester();
	conn.onreadystatechange = process;
	conn.open('GET',page, true);
	conn.send(null);
}

function process()
{
	if(conn.readyState == 4)
	{
		if (conn.status == 200) 
		{
			//HERE WE EXECUTE THE reponse javascript from .NET
			eval(conn.responseText);
			conn.abort();
		}
	} 
}

function getXMLHttpRequester()
{
    var xmlHttpRequest = false;
    try
    {
        if(window.ActiveXObject)
        {
            for(var i = 5; i; i--)
            {
                try
                {
                    if(i == 2)
                    {
                        xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");    
                    } else {
                        xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0");
                    }
                    break;
                }
                catch(excNotLoadable)
                {
                    xmlHttpRequest = false;
                }
            }
        }
        else if(window.XMLHttpRequest)
        {
            xmlHttpRequest = new XMLHttpRequest();
        }
    }
    
    catch(excNotLoadable)
    {
        xmlHttpRequest = false;
    }
    
    return xmlHttpRequest;
}
</script>

Open in new window

0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Suggested Solutions

Having worked on larger scale sites, we found out that you are bound to look at more scalable solutions to integrating widgets, code snippets or complete applications and mesh them into functional sites, in any given composition. To share some of…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
In this tutorial viewers will learn how add a scalable full-width header using CSS3. Create a new HTML document with an internal stylesheet. Set a tiled background.:  Create a new div and name it Header. Position it with position:absolute at the top…
In this tutorial viewers will learn how to embed Flash content in a webpage using HTML5. Ensure your DOCTYPE declaration is set to HTML5: "<!DOCTYPE html>": Use the <object> tag to embed Flash content.: To specify that the object is Flash content, d…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now