|
|
|
Проблемы формирования e-mail JavaScript-ом
|
|||
|---|---|---|---|
|
#18+
Есть задача. Дать посетителям сайта возможность сообщать об ошибках на страницах. То есть, выводим фразу - "увидел ошибку - выдели проблемный текст и нажми Ctrl+Enter". По факту этих манипуляций - должно формироваться мыло. Сделал реализацию на JavaScript <script language="JavaScript"> function mailAlert() { if (event.ctrlKey == true && event.keyCode == 13) // Ctrl+Enter { range = document.selection.createRange(); str1 = "Ошибка на странице : " + document.title + encodeURI("\r\n\r\n"); str = str1 + "URL страницы : " + window.location.href + encodeURI("\r\n\r\n"); str += "Проблемный текст: " + range.text; reg = /<([^>]*)>/gi; // reg = /<.*?>/gi; str = str.replace(reg," "); reg = /\r/gi; str = str.replace(reg," "); reg = /\n/gi; str = str.replace(reg," "); reg = /"/gi; str = str.replace(reg," "); reg = /'/gi; str = str.replace(reg," "); reg = / /gi; str = str.replace(reg," "); reg = /&/gi; str = str.replace(reg," "); reg = /"/gi; str = str.replace(reg," "); reg = /</gi; str = str.replace(reg," "); reg = />/gi; str = str.replace(reg," "); reg = /©/gi; str = str.replace(reg," "); reg = /«/gi; str = str.replace(reg," "); reg = /»/gi; str = str.replace(reg," "); reg = /&/gi; str = str.replace(reg," "); parent.location='mailto:news@finam.ru?subject=' + str1 + '&body=' + str; } // if (navigator.appName == "Netscape") // - для Firefox не работает // { // alert (navigator.appName); // } } </script> <body onkeydown='mailAlert()' > То есть, убираю тэги, кавычки, спец-символы и прочую гадость. Иногда работает, но глючит на некоторых страницах. Что самое прикольное - все страницы формируются ASP движком по единому шаблону. На проблемных страницах пробовал выделить только один символ. Все равно глючит. Если кого заинтересует, вот примеры проблемная страница - http://light.finam.ru/news/article1D0DD/default.asp нормальная страница - http://light.finam.ru/news/article1D10F/default.asp Какие будут идеи ? В какую сторону копать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 17:34 |
|
||
|
Проблемы формирования e-mail JavaScript-ом
|
|||
|---|---|---|---|
|
#18+
Сорри, машинально скопировал текст JavaScript и не поставил маскирование спец-символов. Исправляюсь function mailAlert() { if (event.ctrlKey == true && event.keyCode == 13) // Ctrl+Enter { range = document.selection.createRange(); str1 = "Ошибка на странице : " + document.title + encodeURI("\r\n\r\n"); str = str1 + "URL страницы : " + window.location.href + encodeURI("\r\n\r\n"); str += "Проблемный текст: " + range.text; reg = /<([^>]*)>/gi; // reg = /<.*?>/gi; str = str.replace(reg," "); reg = /\r/gi; str = str.replace(reg," "); reg = /\n/gi; str = str.replace(reg," "); reg = /"/gi; str = str.replace(reg," "); reg = /'/gi; str = str.replace(reg," "); reg = / /gi; str = str.replace(reg," "); reg = /&/gi; str = str.replace(reg," "); reg = /"/gi; str = str.replace(reg," "); reg = /</gi; str = str.replace(reg," "); reg = />/gi; str = str.replace(reg," "); reg = /©/gi; str = str.replace(reg," "); reg = /«/gi; str = str.replace(reg," "); reg = /»/gi; str = str.replace(reg," "); reg = /&/gi; str = str.replace(reg," "); parent.location='mailto:news@finam.ru?subject=' + str1 + '&body=' + str; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 17:40 |
|
||
|
Проблемы формирования e-mail JavaScript-ом
|
|||
|---|---|---|---|
|
#18+
Кажется разобрался. Исключая JavaScript-ом спец-символы из выделенного текста, я совсем забыл про document.title. Сдублировал str = str.replace(reg," "); строками str1 = str1.replace(reg," "); Помогло. А вот победить движок форума и поставить по человечески & a m p ; q i o t ; - не удалось :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 18:15 |
|
||
|
Проблемы формирования e-mail JavaScript-ом
|
|||
|---|---|---|---|
|
#18+
Читай правила и оформляй вопросы, как положено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 20:34 |
|
||
|
Проблемы формирования e-mail JavaScript-ом
|
|||
|---|---|---|---|
|
#18+
авторВ какую сторону копать ?Ставлю пять шкур мамонтов, что ты уперся в ограничение на длину урла (около 4000 символов). mailto: это таки тоже урл. На "проблемной" странице короткий отрывок текста влетает в аутглюк без шума и пыли. А на "безпроблемной" можно с ними познакомиться, жамкнув ctrl+a, ибо мало букав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 21:47 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=319&tid=1455869]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 279ms |

| 0 / 0 |
