2015-02-28 3 views
1

Вот мой кодНевозможно целевой дочерний элемент Canvas

javascript: (function() { 
    var canvas = document.getElementById("app-view").children[1]; 
    var img = canvas.toDataURL("image/png"); 
    window.open(img); 
    })(); 

и here is the app element, где я хочу нацелиться на второй холст элемент «дети 1», но это не работает по какой-то причине, и всегда застревает в первый элемент. Решение будет высоко оценено, спасибо заранее! enter image description here

На картинке он всегда нацелен на первый холст в желтом цвете, но мне нужен синий цвет. Вы можете протестировать код, сохранив скрипт в качестве закладки в своем браузере.

+0

Есть ли что-нибудь, препятствующее вам предоставить каждому холсту идентификатор и выбирая их напрямую? –

+0

@TiesonT. сайт не мой, поэтому я не могу ничего сделать изнутри – Geniusknight

+0

Я вижу, я использовал консоль для записи холста, и, похоже, он определенно выбирает правильный холст, но он все равно получает данные изображения левого холста. Странно, даже если вы добавляете id в холст и используете getElementById, он по-прежнему показывает левый холст. Итак, теперь возникает вопрос, почему toDataURL дает данные изображения левого холста, даже если вы определенно используете его на правом холсте. –

ответ

1

не работал, почему toDataURL получает данные левого холста, но если вы хотите сохранить холст, вы можете изолировать его с

var can = document.getElementById("app-view").children[1]; 
jQuery("body > *").remove(); 
jQuery("body").append(can) ; 

, а затем вы теперь можете щелкнуть правой кнопкой мыши и сохранить холст

+0

, который был блестящим! Отлично работает – Geniusknight

0

Это работает для меня:

document.getElementById('app-view').childNodes[1] 
+0

все еще не работает! Он всегда заканчивается на первом холсте – Geniusknight

Смежные вопросы