Jump to content
  • 0

Опять про innerHTML (вторая попытка)


uefa
 Share

Question

Уважаемые форумчане, простите за сумбур в поставленном вопросе первого поста. Сформулирую четче:

Есть тег

<div id="content">

</div>

в который нужно вставить следующий код:

<script type="text/javascript" src="http://www.mbovin.com/soccerdb/gettable.php?id=424&columns=pos,team,pts,wdl"></script>

Но "id=424" может принимать другие значения

<select id="lbFeeds" onChange="get_feed();">
<option value="424">Группа D</option>
<option value="425">Группа E</option>
<option value="426">Группа F</option>
...
</select>

Попытался составить функцию:

<script type="text/javascript">

function get_feed() {
var s1 = "'"
var s2 = "/";
var beginLink = "<script type="+s1+"text/javascript"+s1+" src="+s1+"http://www.mbovin.com/soccerdb/gettable.php?id=";
var endLink = "&columns=pos,team,pts,wdl"+s1+"><"+s2+"script>";
document.getElementById("content").innerHTML = beginLink + document.getElementById("lbFeeds").value + endLink;
}

</script>

Но такая конструкция не работает.

Вот теперь по-моему уже все объяснил. Может поможете разобраться...

Спасибо.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Test Page...</title>
<style type="text/css">
body { text-align:center; }
#content {margin:100px auto;padding:5px;font:11px Verdana;text-align:center;border:1px solid rgb(255,102,0);width:770px;height:18px; }
</style>

<script type="text/javascript" language="JavaScript">

function get_feed() {

var beginLink = "<script type='text/javascript' src='http://www.mbovin.com/soccerdb/gettable.php?id=";
var endLink = "&columns=pos,team,pts,wdl'></script>";

this.document.getElementById("content").innerHTML = beginLink + document.getElementById("lbFeeds").value + endLink;
}

</script>

</head>
<body>

<select id="lbFeeds" onChange="get_feed();">
<option value="424">Группа D</option>
<option value="425">Группа E</option>
<option value="426">Группа F</option>

</select>

<div id="content"></div>

</body>
</html>

оно?

Link to comment
Share on other sites

  • 0

To Emm:

Спасибо большое. Все работает. Только хотелось бы, чтобы в теге

отображался не текст скрипта

<script type='text/javascript' src='http://www.mbovin.com/soccerdb/gettable.php?id=424&columns=pos,team,pts,wdl'>, а результат его отработки, т.е. таблица.

Можно ли сделать так? Спасибо.

Link to comment
Share on other sites

  • 0

Хм, позволил себе изменить код Emm:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Test Page...</title>
<style type="text/css">
body { text-align:center; }
#content {margin:100px auto;padding:5px;font:11px Verdana;text-align:center;border:1px solid rgb(255,102,0);width:770px;height:18px; }
</style>

<script type="text/javascript" language="JavaScript">

function get_feed() {

var beginLink = "http://www.mbovin.com/soccerdb/gettable.php?id=";
var endLink = "&columns=pos,team,pts,wdl";
var content = document.getElementById("content");

if (!content.getElementsByTagName('script')[0]) {
content.appendChild(document.createElement('script'));
content.getElementsByTagName('script')[0].type = "text/javascript";
}
content.getElementsByTagName('script')[0].src = beginLink + document.getElementById("lbFeeds").value + endLink;
}

</script>

</head>
<body>

<select id="lbFeeds" onChange="get_feed();">
<option value="424">Группа D</option>
<option value="425">Группа E</option>
<option value="426">Группа F</option>

</select>

<div id="content"></div>

</body>
</html>

Правда работать он не будет. :) Ну или не должен. Копайте в сторону ajax.

Link to comment
Share on other sites

  • 0

Внял совету по поводу ajax. Получилось так:

  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>Test Page...</title>
<style type="text/css">
body { text-align:center; }
#content {margin:100px auto;padding:5px;font:11px Verdana;text-align:center;border:1px solid rgb(255,102,0);width:770px;height:18px; }
</style>

<script type="text/javascript" language="JavaScript">

function getHTTPObject() {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
return new ActiveXObject("Msxml2.XMLHTTP");
}

}

function get_file (url) {

var httpreq = getHTTPObject( );
var content = document.getElementById("content");

//Precondition: must have a URL
if (url == "") return;

httpreq.open("GET", url, true);

httpreq.onreadystatechange = function ( ) {
if (httpreq.readyState == 4) {
if (httpreq.status == 200){
var html = httpreq.responseText;
content.innerHTML = html;
} else {
content.innerHTML = "Error: Status "+request.status;
}


}
}

httpreq.send ();
}

function get_url ( ) {

var beginLink = "http://www.mbovin.com/soccerdb/gettable.php?id=";
var endLink = "&columns=pos,team,pts,wdl";
var url = beginLink + document.getElementById("lbFeeds").value + endLink;
get_file (url);
}

</script>

</head>
<body>

<select id="lbFeeds" onChange="get_url();">
<option value="424">Группа D</option>
<option value="425">Группа E</option>
<option value="426">Группа F</option>

</select>

<div id="content"></div>

</body>
</html>

И все равно не работает. Помогите разобраться. Спасибо.

Link to comment
Share on other sites

  • 0
Файл, который Вы пытаетесь получить находится в том-же домене? Если нет, то браузеры не смогут его получить.

Нет. Файл из другого домена. Так что же, нет никаких вариантов это осуществить?

Link to comment
Share on other sites

  • 0

Так а что за сценарий подключается? Он в зависимости от селекта каждый раз разный?

Если нет, подключите как обычно, только внутри скрытого divа, а в нужный момент сделайте видимым.

Либо, если это разные ? создайте скрытый iframe, подгрузите в него страницу с подключаемым

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy