Другие ответы предполагали событие load
, но он запускает после , загружается новая страница в iframe. Возможно, вам потребуется уведомление сразу после изменения URL-адреса, а не после загрузки новой страницы.
Вот простое решение для JavaScript:
function iframeURLChange(iframe, callback) {
var unloadHandler = function () {
// Timeout needed because the URL changes immediately after
// the `unload` event is dispatched.
setTimeout(function () {
callback(iframe.contentWindow.location.href);
}, 0);
};
function attachUnload() {
// Remove the unloadHandler in case it was already attached.
// Otherwise, the change will be dispatched twice.
iframe.contentWindow.removeEventListener("unload", unloadHandler);
iframe.contentWindow.addEventListener("unload", unloadHandler);
}
iframe.addEventListener("load", attachUnload);
attachUnload();
}
iframeURLChange(document.getElementById("mainframe"), function (newURL) {
console.log("URL changed:", newURL);
});
Это будет успешно отслеживать изменения атрибутов src
, а также любые изменения URL-адресов, сделанные из самого iframe.
Проверено во всех современных браузерах.
Примечание. Вышеприведенный фрагмент будет работать, только если iframe имеет одинаковое происхождение.
Я также создал gist с этим кодом. Вы можете проверить мой другой ответ . Это немного углубленно, как это работает.
Вы можете использовать createStyle
в пакете openxlsx
.
library(openxlsx)
# sample data
my_data <- data.frame(nam1 = 1:12, nam2 = month.abb, stringsAsFactors = FALSE)
# create workbook
wb <- createWorkbook()
# add Excel sheet
addWorksheet(wb, "A")
# create style, in this case bold header
header_st <- createStyle(textDecoration = "Bold")
# Write data with header style defined above
writeData(wb, "A", my_data, headerStyle = header_st)
# save to .xlsx file
saveWorkbook(wb, "test.xlsx")