изменение значения параметра объекта в html с помощью ajax - PullRequest
0 голосов
/ 29 июля 2009

Я создаю небольшое веб-приложение для запуска миди-файлов. В настоящее время я использую быстрое время для воспроизведения миди-файлов. Проблема в том, что я не знаю, к какому источнику мне нужно привязать объект, пока пользователь не введет некоторую информацию (что-то вроде поиска). Мне нужно обновить QuickTime фильм по правильному пути. Является ли это возможным? Поддерживает ли ajax это?

Ответы [ 2 ]

2 голосов
/ 29 июля 2009

AJAX - это техника. Вам нужно изменить путь к фильму QuickTime с помощью JavaScript.

var qtMovie=document.getElementById('yourMovieEmbedID');
qtMovie.src='your new source';

Вы должны заключить этот код в функцию и запускать ее, когда пользователь нажимает кнопку ОК.

0 голосов
/ 29 июля 2009

Если вам действительно нужно добавить a <param> (в отличие от настройки значения атрибута), я обнаружил, что захват <object>, клонирование, добавление <param> и затем замена текущего тега <object>, похоже, работает в большинстве браузеров (хотя в Firefox он не работает). См. этот ответ для рабочего примера.

Этот связанный ответ предназначен для каждого <object> на странице. Вот как вы это сделаете для одного экземпляра тега:

// create the appropriate <param>
var elementToAppend = document.createElement('param');
elementToAppend.setAttribute('name', 'src');
elementToAppend.setAttribute('value', 'blah.midi');
// get a reference to the <object>
var obj = document.getElementById('yourMidiPlayerObject');
// duplicate the <object>
var newObj = obj.cloneNode(true);
// append the <param> to the <object>
newObj.appendChild(elementToAppend);
// replace the <object> on the page
obj.parentNode.replaceChild(newObj, obj);

Если <param>, который вы хотите изменить, уже существует, все немного по-другому:

// get a reference to the <object>
var obj = document.getElementById('yourMidiPlayerObject');
// duplicate the <object>
var newObj = obj.cloneNode(true);
// get a reference to the current <param>
var param = document.getElementById('theParamId');
// duplicate the <param>
var newParam = param.cloneNode(true);
// change the value of the <param>
newParam.setAttribute('value', 'newblah.midi');
// replace the <param> tag on the <object>
newObj.replaceChild(newParam, param);
// replace the <object> on the page
obj.parentNode.replaceChild(newObj, obj);

В обоих случаях хитрость в том, чтобы заставить его работать в IE, Opera, Safari и Chrome, состоит в замене <object> на странице. Добавление нового <param> к существующему <object>, по-видимому, не приводит к повторному анализу значения или загрузке вновь ссылающегося содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...