Рендеринг Highcharts в динамическом iFrame

0

Я пытаюсь сделать Highcharts в div динамически созданный внутри iFrame.

Часть html:

<div id="fr">Get iframe</div>
<div id="ch9">
<div id="chart3"> chart2</div>
</div>
<p><iframe id="ifr"></iframe></p>

Часть jQuery:

  1. Создайте div внутри iframe:

    var iframeContent;
     $(function () {
             $("#fr").click(function () {
                 $('#ifr').contents().find('body').html($('#ch9').html());
                 iframeContent = $('#ifr').contents().find('#ch3');
             });
    
  2. Попробуйте загрузить Highchart в элемент iframeContent (фрагмент кода):

    .....
    chart2= new Highcharts.Chart({
            chart: {
        renderTo:iframeContent,
                type: 'spline',
    ......
    

Но это не работает и выдает ошибку

Object has no method setAttribute

Как я могу это исправить?

благодаря

Теги:
highcharts

2 ответа

0

Вы не можете вызывать скрипт на элементах внутри обернутых элементов iframe. У вас нет доступа к этому элементу.

-2

передать идентификатор

renderTo: 'containerId'

если вы хотите использовать объект, то извлеките его id iframeContent[0] или извлеките его идентификатор, а затем передайте его на диаграмму.

EDIT: еще один пример.

если вы используете highcharts 3. *, вы можете пойти с $ ("# container"). highcharts ({}); здесь он эквивалентен iframeContent..highcharts({});

  • 0
    Разве это не то, что я делаю? 1. получить элемент как объект: iframeContent = $ ('# ifr'). Contents (). Find ('# ch3'); 2. визуализировать диаграмму - renderTo: iframeContent. Что не так с моим кодом? Спасибо!
  • 0
    iframeContent.highcharts ({}); не работает, если элемент находится внутри iFrame. Это работает, только если элемент находится в том же окне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню