Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2014, 18:44   #1
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
Вопрос Как отключить js в webbrowser

Всем доброго времени суток!
Такой вопрос: возможно отключить яваскрипт в webbrowser, хочу сделать кнопку для включения\отключения скриптов.
Если можно пример кода.
daaa вне форума Ответить с цитированием
Старый 24.01.2014, 18:48   #2
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Код:
unit Unit1;
 
interface
 
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ActiveX,
 OleCtrls, SHDocVw, ExtCtrls, StdCtrls;
type
  TBrowser = class(TWebBrowser, IDispatch)
  protected
   function IDispatch.Invoke = Invoke;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
  public
   constructor Create(AOwner: TComponent); override;
  end;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    WebBrowser: TWebBrowser;
  public
    { Public declarations }
  end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
constructor TBrowser.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
end;
 
function TBrowser.Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult;
const
 DISPID_AMBIENT_DLCONTROL=-5512;
 DLCTL_NO_SCRIPTS=$00000080;
begin
 if (Flags and DISPATCH_PROPERTYGET<>0) and (VarResult<>nil) then
 begin
  Result:=S_OK;
  if DispID = DISPID_AMBIENT_DLCONTROL then PVariant(VarResult)^:=Integer(DLCTL_NO_SCRIPTS)
  else Result:=DISP_E_MEMBERNOTFOUND;
 end
 else result:=inherited invoke(dispid, iid, localeid, flags, params, varresult, ExcepInfo, ArgErr);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  FreeAndNil(WebBrowser);
  if Button1.Tag = 1 then begin
    WebBrowser := TBrowser.Create(self);;
    Button1.Tag := 0;
    Button1.Caption := 'Включить JavaScript';
  end
  else begin
    WebBrowser := TWebBrowser.Create(self);
    Button1.Tag := 1;
    Button1.Caption := 'Отключить JavaScript';
  end;
  TControl(WebBrowser).Parent:=Panel1;
  WebBrowser.Align:=alclient;
  WebBrowser.Navigate('http://liblearn.osu.edu/tutor/jscript.html'); // Тест
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
 WebBrowser.Free;
end;
 
end.
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 24.01.2014, 21:25   #3
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

спасибо, работает!
daaa вне форума Ответить с цитированием
Старый 24.01.2014, 22:44   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
procedure TForm1.FormDestroy(Sender: TObject);
begin
WebBrowser.Free;
end;
а это зачем?
eval вне форума Ответить с цитированием
Старый 26.01.2014, 15:52   #5
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

такой глюк с этим кодом: допустим захожу на какую нибудь страницу,жму кнопку "отключить js" и в браузере снова отображается стартовая страница ((
как сделать чтобы при отключении скриптов отображалась текущая страница?
daaa вне форума Ответить с цитированием
Старый 27.01.2014, 11:32   #6
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

ребята помогите! нифига не соображу
как сделать чтобы при отключении скриптов в браузере отображался текущий URL ,а не стартовая страница?
daaa вне форума Ответить с цитированием
Старый 27.01.2014, 11:43   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Видимо, оно без скриптов не работает)
Человек_Борща вне форума Ответить с цитированием
Старый 27.01.2014, 11:48   #8
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Видимо, оно без скриптов не работает)
непонял.. что не работает? )
daaa вне форума Ответить с цитированием
Старый 27.01.2014, 12:37   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Текущий URL не обновляется без скриптов.
Человек_Борща вне форума Ответить с цитированием
Старый 27.01.2014, 15:04   #10
daaa
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 18
По умолчанию

выходит, таки и нет вариантов как отключить js в webbrowser?
daaa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отключить css в webbrowser Delphi designer999 Работа с сетью в Delphi 0 11.06.2010 09:54
Как отключить звуки WebBrowser'а? Marsel737 Мультимедиа в Delphi 14 14.01.2010 10:29
Отключить конт. меню в WebBrowser? apromix Компоненты Delphi 0 01.10.2009 18:40
Как отключить монитор??? Манжосов Денис :) Помощь студентам 5 14.07.2008 17:11
Отключить загрузку всех картинок в WebBrowser SHEI'TI Общие вопросы Delphi 6 31.01.2008 13:23