Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: webbrowser и ошибка скрипта

Здравствуйте.

есть код, который по plugable protocol подгружает в webbrowser странички. Из базы.
в частности подгружается редактор страницы (tinymce)

на локальном компьютере и локальной базе все работает.
На локальном компьютере и удаленной базе все работает.
на удаленном комьютере и удаленной базе (те по сути локально) нет
Подгружается один из фалов CSS. в нем есть
src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf')

может конечно не всю строку показал.
на локальном компе следующий URL прилетает такой

prott://hello/tiny_mce/skins/lightgray/fonts/tinymce.eot

а вот на удаленном такой

prott://hello/tiny_mce/skins/lightgray/fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg

базы все проверил - все идентично.
загружаемые файлы проверил - идентичны.

В чем может быть проблема?

Спасибо
Ответ: если на xp открыть те же файлы с диска - ругнется, что скрипты не разрешены, разрешаю - все ок
Вопрос: Как вставить переменную java скрипт в php переменную

Здравия, форумчане! Извиняюсь за некорректность заголовка... Подскажите новичку, есть ли возможность перенести содержимое переменной java скрипт в php переменную? Пытался реализовать через функцию ob_start(); По примеру, но php переменная принимает в виде значения сам код отображения переменной java скрипт...

Пример моих действий:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
 
...
 
ob_start();
?>
<script>document.write(user_href_1);</script>
<?php 
$x = ob_get_clean();
 
...
 
?>
Ответ: Jewbacabra, Благодарствую... Кажется я понял свою ошибку... Тогда другой вопрос: К примеру есть файл с данными, записанными построчно в столбик. Как я могу вставить ту или иную строку в нужное место php документа?

з.ы. оба документа находятся на web сервере...
Вопрос: Проблемы с Webbrowser

Здравствуйте, коллеги!

Вопрос по Webbrowser'у:
Прога использует Webbrowser в нескольких местах для получения новостей с сайта поддержки, уведомлений и т.п. информации. Документы, принимаемые с сайта упрощены в доску.
Сама программа компилировалась под .Net 4. И все прекрасно работало на всех операционках, начиная с XP SP 3.

Буквально неделю-две назад прога упала на десятках машин по причине вечных глюков Webbrowser с ява-скриптами.
Сайт работает на джумле. Скрипты есть:
  • https:/....ru/media/jui/js/jquery.min.js?
но они, судя по описаниям из разных источников, должны перевариваться и самыми старыми браузерами. И все работало больше года. А теперь прога просто падает насмерть из-за этих ошибок.

Сейчас завел костыль на уровне редактирования реестра и прописываю имя проги + версию установленного ИЕ. Заставляю обновляться пользователей до ИЕ 11...

Но... на XP, что, крест совсем поставить? вин8 - максимум ИЕ10. и тд. и тп.

Что же произошло две недели назад, что Webbrowser перестал переваривать jquery?
Ответ:
Сообщение от AlexNorton
. Скрипт в ядре зашит.... во блин.. может с обновлениями движка и зашло...
Верная мысль
Вопрос: Webbrowser не догружает страницы

Если открыть IE 11 и зайти на сайт, страница полноценно загрузится и будет работать. При открытии ее же из под webbrowser вылазят ерроры скриптов. Можно ли починить это? Через awesomium все хорошо.

Не по теме:

Авесомиум не подошел потому что не смог переписать на него код


C#
1
2
3
 System.Text.Encoding encoding = System.Text.Encoding.UTF8;
byte[] bytes = encoding.GetBytes(postData);
webBrowser1.Navigate(url, string.Empty, bytes, "Content-Type: application/x-www-form-urlencoded");
Ответ: , кстати говоря, приведен способ, который я видел на оффициальном сайте авесомиума для посылки пост запросов. Извращение, конечно, но мне лично оно и не было нужно. Ведь нажать скриптом на кнопку гораздо проще, а ресурсы все одно расходуются.
Вопрос: Настройка tomcat 5.x + java 8 + windows2008 r2

Всем привет еще раз! Подскажите, что делать, установил Tomcat 5.x и java 8. на сервер 2008 r2. Подгрузил war файлы. Пытаюсь открыть страничку, пишет, Please enable javascript. В браузере все включил, такое ощущение, что java просто не работает.
Ответ: с локалхостом все норм, скорее всего блокируется выполнение java скриптов
Вопрос: Ошибка скрипта WebBrowser

Доброго времени суток Уважаемые форумчане!
Хотел было, сделать прогу для упрощения работы.
В ней открываются определенные сайты в компоненте Webbrouser.
Открытие сайтов делаю по кнопке с кодом:

WebBrowser1.Navigate("https://freebitco.in/?r=522553")


Все дело в том, что некоторые сайты открываются нормально, а некоторые с ошибкой "На странице возникла ошибка скрипта"

Подавление ошибок сделать не проблема
WebBrowser1.ScriptErrorsSuppressed = True


Но страницы загружаются при этом не корректно (коряво, нет некоторых нужных элементов и т.п.), хоть я руками буду нажимать кнопку "Да" при возникновении ошибки скрипта, хоть я поставлю подавление.

Может есть какой нибудь способ исправить это. Гуглил, но не нагуглил!
Ответ:
VB_VS
Shocker.Pro,

Если честно ни чего не понял из написаного.
Что такое HKCU? И для чего оно?
Что это тза код и куда он прописывается?:
HKEY_CURRENT_USER
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     myprog.exe = (DWORD) 0001100


Помогите разобраться.
Потому что попробовал на делфи сделать, получил тоже самое "ошибка скрипта"


Все всем спасибо я вкурил!!! все заработало
Вопрос: Как распарсить только часть страницы с java-скриптом и разместить на форму?

Ранее, благодаря помощи форума распарсил требуемые мне ссылки на сайте.
Теперь встала проблема: как открыть требуемую мне только часть страницы при клике на ссылку
Вот проект на VB.NET
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Imports System.IO
Imports System.Text
Public Class Form1
    Dim documentCompleted As Boolean = False
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        documentCompleted = True
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        LinkLabel1.Text = ""
        WebBrowser1.Navigate("http://www.fanfics.me/autent.php")
        Timer1.Enabled = True
    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        WebBrowser1.ScriptErrorsSuppressed = True
    End Sub
 
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If documentCompleted = True Then
            WebBrowser1.Document.GetElementById("name").InnerText = txtLogin.Text
            WebBrowser1.Document.GetElementById("pass").InnerText = txtPass.Text
            WebBrowser1.Document.GetElementById("enter_submit").InvokeMember("click")
            documentCompleted = False
 
            Timer1.Enabled = False
            Timer2.Enabled = True
        Else
            Exit Sub
        End If
    End Sub
    Public Function Pars(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String) As String
        Dim iPos As Integer, iEnd As Integer
        Dim strResult As String
        iPos = strSource.IndexOf(strStart, 0)
        iEnd = strSource.IndexOf(strEnd, iPos + strStart.Length)
        If iPos <> -1 AndAlso iEnd <> -1 Then
            strResult = strSource.Substring(iPos + strStart.Length, iEnd - (iPos + strStart.Length))
        End If
        Return strResult
    End Function
    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        WebBrowser1.Refresh()
        If documentCompleted = True Then
            Label1.Visible = False
            Label2.Visible = False
            txtLogin.Visible = False
            txtPass.Visible = False
            Button1.Visible = False
            GroupBox1.Text = "Пользователь"
            Label3.Visible = True
            Label3.Text = txtLogin.Text
            Dim sr As StreamReader = New StreamReader(Me.WebBrowser1.DocumentStream, Encoding.GetEncoding("windows-1251"))
            TextBox1.Text = sr.ReadToEnd()
            LinkLabel1.Text = Pars(TextBox1.Text, "<a href=""/index.php?section=dialogs"">", "</a>")
            'Timer2.Enabled = False
            documentCompleted = False
        End If
    End Sub
    Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
???
    End Sub
End Class
А вот код нужного мне куска страницы:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</div><div id="data-container">
        <script>history.replaceState({path: 'section_dialogs_post.php?action=dialogs_list'}, null, location);</script><table class="PropertiesMenu HorMenu">
        <tr>
            <td class="sp"> </td>
            <td class="activ" style="width:70px;"><a class="ajax-link" href="/index.php?section=dialogs" data-ajaxurl="section_dialogs_post.php?action=dialogs_list"><b>Диалоги</b></a></td>
            <td class="sp"> </td>
            <td class="nactiv" style="width:150px;"><a class="ajax-link" href="/index.php?section=dialogs&action=important" data-ajaxurl="section_dialogs_post.php?action=impmsglist"><b>Важные сообщения</b></a></td>
            <td class="sp" style="width:531px;"> </td>
        </tr>
        <tr>
            <td class="HorMenuSecondLine" colspan="12" style="padding:15px 10px;">
                <input class="input_3" id="dialog-search" type="text" value="" placeholder="Введите имя пользователя для быстрого перехода к диалогу с ним" style="width:450px; padding:4px;">
                <div id="dialog-search-answ" class="dialog-search-answ"></div></td>
        </tr>
        </table>
Ответ: Mitrokha, ну так это просто переход по ссылке... тот Webbrowser, который скрытый, и используйте как страница с сообщениями, так как он уже открыт на странице текущего пользователя.

Добавлено через 4 минуты
а точнее выполнить вот этот код:
vb.net
1
2
WebBrowser1.Navigate("http://www.fanfics.me/index.php?section=dialogs")
WebBrowser1.Visible = True
Вопрос: WebBrowser отображение текста ссылки

Всем доброго времени суток!

Как в C# можно сделать аналог расшифровки ссылки при наведении курсора в WebBRowser?

Студия 2010.
Ответ: Я немножко поэкспериментировал.
Событие MouseMove в стандартном компоненте WebBrower не работает. Пишут, что можно переопределить WndProc:
class MyBrowser : WebBrowser
{
    protected override void WndProc(ref Message m)
    {
        const int WM_MOUSEMOVE = 0x0200;
        if (m.Msg == WM_MOUSEMOVE)
        {
            Debug.WriteLine("foo");
        }
        else base.WndProc(ref m);
    }
}
Однако, это не заработало.

Тогда сделал костылик - заюзал таймер.
var browser = new WebBrowser
{
    Parent = this,
    Dock = DockStyle.Fill,
    ScriptErrorsSuppressed = true
};
browser.Navigate("yandex.ru");

var timer = new Timer();
timer.Tick += (o, e) =>
{
    if (browser.Document != null)
    {
        HtmlElement elem = browser.Document.GetElementFromPoint(browser.PointToClient(MousePosition));
        if (elem != null)
        {
            if (string.Compare(elem.TagName, "A", true) == 0)
                this.Text = elem.GetAttribute("href");
        }
    }
};
timer.Start();

Работает. Текст ссылок показывает. Но только текст прямых ссылок. Если в <a> вложен какой-нибудь другой тэг, то нужно вверх по дереву пройтись до тэга A.
Вопрос: Есть проблема со скриптом VB

Всем привет! Есть скрипт, он должен менять название полей таблицы tblCalendarActivities и в запросе qdfCalendarActivities с Lesson1, Lesson2, Lesson3.......Lesson48 на дату и день недели. При запуске скрипта система ни на что не ругается, но скрипт не делает то, что от него требуется, то есть, не меняет название полей. Подскажите пожалуйста, где ошибка. Самой не найти никак.
Вот скрипт:

Dim d, iStudent, Student, iLesson, rstA, sSql, sSql1, dCurDate, iCurWeekDay, dDate, c, sCurWeekDay, dEndDate, k, iWidth, sGridColWidth, iCount, rstB, rstH, sSetColor
d = InputFromList ("Выберите группу", "Выбор группы", "Группа", "SELECT GroupDance FROM tblGroups", 1, 300, 500)
If Left(d, 2) = "Ok" Then
d = Mid(d, 4)
End If
SetStatusText Генерирую расписание. Пожалуйста, подождите ...
iWidth = <GridWidth>
iWidth = iWidth - 885 - 400
dDate = Date()
dEndDate = DateAdd("m", 1, dDate)
dDate = InputDate("Выберите дату начала расписания", "Выбор даты начала", dDate)
dEndDate = InputDate("Выберите дату конца расписания", "Выбор даты окончания", dEndDate)
If dDate <> "" AND dEndDate <> ""  Then 
    k = DateDiff("d", dDate, dEndDate)
    iWidth = iWidth / k
    iWidth = INT(iWidth)
    sGridColWidth = "ID=885;"
    For iLesson = 1 To 48
	c = iLesson - 1
	 dCurDate = DateAdd("d", c, dDate)
       iCurWeekDay = Weekday(dCurDate,2)
       ExecuteSQL "UPDATE tblSettings SET SettingValue = 'Поле" & iLesson & "' WHERE SettingName = 'qdfCalendarActivities.Lesson" & ilesson & ".Caption'; "
       ExecuteSQL "UPDATE tblSettings SET SettingValue = 'Поле" & iLesson & "' WHERE SettingName = 'qdfCalendarActivities.Lesson" & ilesson & ".Description'; "
       ExecuteSQL "UPDATE tblCalendarActivities SET Lesson" & iLesson &" = '';"
    Next iLesson
   SetMousePointer vbHourglass
   sSql = "SELECT Count(*) AS iCount FROM qdfCalendarActivities"
    OpenRecordset rstA, sSql
    iCount = rstA("iCount").Value
    rstA.Close()
    sSql = "SELECT Count(*) AS iStudent, Student AS Student FROM tblCompositionGroup WHERE GroupName =  '"& d &"'"
    OpenRecordset rstH, sSql
    sSetColor = ""
    For iStudent = 1 to iCount
        For iLesson = 1 To k
			c = iLesson - 1
            dCurDate = DateAdd("d", c, dDate)
            iCurWeekDay = Weekday(dCurDate,2) 
            If iStudent = 1  Then
                sGridColWidth = sGridColWidth & "Lesson" & iLesson & "=" & iWidth & ";" 
                sCurWeekDay = Choose(iCurWeekDay, "пн", "вт", "ср", "чт", "пт", "сб", "Вс")     
                ExecuteSQL "UPDATE tblSettings SET SettingValue = FORMAT('" & dCurDate &"','dd.MM.YYYY') & ' ' & '" &  sCurWeekDay & "' WHERE SettingName = 'qdfCalendarActivities.Lesson" & ilesson & ".Caption'; "
                ExecuteSQL "UPDATE tblSettings SET SettingValue = FORMAT('" & dCurDate &"','dd.MM.YYYY') & ' ' & '" &  sCurWeekDay & "' WHERE SettingName = 'qdfCalendarActivities.Lesson" & ilesson & ".Description'; "
                ExecuteSQL "UPDATE tblCalendarActivities SET Lesson"& iLesson &" = FORMAT('" & dCurDate &"','dd.MM.YYYY') & ' ' & '" &  sCurWeekDay & "' "
                    If rstH.EOF Then 
                        sSetColor = sSetColor & "Lesson" & iLesson & "=65280 "
                    Else
                        sSetColor = sSetColor & "Lesson" & iLesson & "=10079487 "
                    End If
                
            End If
			
		Next iLesson
    Next iStudent
    rstH.Close()
	ExecuteSQL "UPDATE tblSettings SET SettingValue = '" & sSetColor & "' WHERE SettingName = '1.qdfCalendarActivities.GridColBackColors'"
    SetMousePointer vbDefault
    ExecuteSQL "UPDATE tblSettings SET SettingValue = '" & sGridColWidth & "' WHERE SettingName = '1.qdfCalendarActivities.GridColWidth'"
    MsgBox "Расписание составлено"
    ReOpenTable()
Else 
    MsgBox "Вы не ввели Дату начала или Дату окончания расписания."
End If

Модератор: Учимся использовать тэги оформления кода -
Ответ:
Arhirru
[SRC vbnet]
SetStatusText Генерирую расписание. Пожалуйста, подождите ...

и на это не ругается?
Вопрос: WebBrowser LoadCompleted не запускается

internal void GetPosition()
        {
            _webBrowser = new WebBrowser();
            _webBrowser.Visibility = Visibility.Hidden;
            var location = Assembly.GetExecutingAssembly().Location;
            _webBrowser.LoadCompleted += webBrowser_LoadCompleted;
            _webBrowser.Navigate(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\Location.html");
        }


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <meta http-equiv="X-UA-Compatible" content="IE=10" />
    <script type="text/javascript">
        window.onload = function () {
            var latitude = document.getElementById("latitude");
            var longitude = document.getElementById("longitude");
            var error = document.getElementById("error");

            function getLocation() {
                if (navigator.geolocation) {
                    navigator.geolocation.getCurrentPosition(success, error, options);
                }
            }

            var options = {
                enableHighAccuracy: true,
                timeout: 5000,
                maximumAge: 0
            };

            function success(position) {
                latitude.value = position.coords.latitude;
                longitude.value = position.coords.longitude;
            };

            function error(err) {
                error.value = 'ERROR(' + err.code + '): ' + err.message;
            };


            function showPosition(position) {
                latitude.value = position.coords.latitude;
                longitude.value = position.coords.longitude;
            }
            getLocation();
        }
    </script>
</head>
<body>
    <input type="hidden" id="latitude" />
    <input type="hidden" id="longitude" />
    <input type="hidden" id="error" />
</body>
</html>


В чем может быть проблема, почему метод не запускается?
Ответ: Axeleron,

честно скажу, даже представить сложно, где этот контрол WebBrowser, может реально пригодится. По моему, это полнейшая шляпа